繁体   English   中英

如何在C#中使用linq代替foreach循环

[英]How to use linq instead of foreach loop in c#

我正在尝试寻找下一种情况的解决方案:

  1. 我有商品ID的数组

     var arrayIds = new long []{1076,2840,4839,3920,..., N}; 
  2. 我有返回一个项目的方法

     public Item getItem(long id) { return new Item{Id = id, Name = "name"}; } 
  3. 在这里尝试获取所有物品

     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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM