Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c中使用linq代替foreach循环#_C#_Linq - Fatal编程技术网

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

我正试图为下一种情况找到解决方案:

  • 我有一个带有项目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));
    }
    
    我这里有下一个错误:

    没有给出与“
    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))