[英]How to use linq instead of foreach loop in c#
我正在尝试寻找下一种情况的解决方案:
我有商品ID的数组
var arrayIds = new long []{1076,2840,4839,3920,..., N};
我有返回一个项目的方法
public Item getItem(long id) { return new Item{Id = id, Name = "name"}; }
在这里尝试获取所有物品
var itemList = new List<Item>(); foreach(var id in arrayIds) { itemList.Add(getItem(id)); }
是否可以在此处使用Linq代替foreach
?
我试图写这样的东西
itemList = arrayIds.ForEach(x => getItem(x));
所以我这里有下一个错误:
没有给出与
Array.ForEach<T>(T[], Action<T>)
'所需形式参数'action'相对应的参数
所以我不知道如何正确使用Linq。
我试图写类似的东西
itemList = arrayIds.ForEach(x => getItem(x));
ForEach()
在List<T>
:
arrayIds.ToList().ForEach(x => getItem(x));
但是您想要的是:
var itemList = arrayIds.Select(getItem).ToList();
或者,如果您只想枚举项目:
var items = arrayIds.Select(getItem);
使用选择
var itemList = arrayIds.Select(x => getItem(x))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.