C# 如何在c中使用linq代替foreach循环#
我正试图为下一种情况找到解决方案:C# 如何在c中使用linq代替foreach循环#,c#,linq,C#,Linq,我正试图为下一种情况找到解决方案: 我有一个带有项目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
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));
}
我这里有下一个错误:
没有给出与“Array.ForEach(T[],action)
”的必需形式参数“action”对应的参数
所以我不知道如何正确使用Linq
我试过写这样的东西
itemList=arrayIds.ForEach(x=>getItem(x))代码>
ForEach()
适用于:
但你想要的是:
var itemList = arrayIds.Select(getItem).ToList();
或者,如果您只想列举项目:
var items = arrayIds.Select(getItem);
使用选择
var itemList = arrayIds.Select(x => getItem(x))
不是LINQ方法,而是一种方法。通常被“LINQ”引用的方法是中定义的扩展方法。
var items = arrayIds.Select(getItem);
var itemList = arrayIds.Select(x => getItem(x))