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# 使用linq将对象集合的列表成员的内容合并到单个列表中_C#_Linq - Fatal编程技术网

C# 使用linq将对象集合的列表成员的内容合并到单个列表中

C# 使用linq将对象集合的列表成员的内容合并到单个列表中,c#,linq,C#,Linq,是否可以用linq替换下面的foreach循环 public class Foo { List<Bar> Bars {get; set;} } List<Foo> fooList = GetFooList(); List<Bar> allBars = new List<Bar>(); foreach (Foo foo in fooList) { allBars.AddRange(foo.Bars); } 它提供了一个列表您可以

是否可以用linq替换下面的foreach循环

public class Foo
{
    List<Bar> Bars {get; set;}
}

List<Foo> fooList = GetFooList();
List<Bar> allBars = new List<Bar>();

foreach (Foo foo in fooList)
{
    allBars.AddRange(foo.Bars);
}
它提供了一个
列表

您可以在foo.bar上使用SelectMany()

allBars.AddRange(fooList.SelectMany(foo => foo.Bars));
如果allBars变量在AddRange()之前不包含任何内容,则可以跳过对象创建:

List<Bar> allBars = fooList.SelectMany(foo => foo.Bars).ToList();
List allbar=doulist.SelectMany(foo=>foo.bar.ToList();
如果你不打算在其他地方使用傻瓜,你可以写:

List<Bar> allBars = GetFooList().SelectMany(foo => foo.Bars).ToList();
List allbar=get傻瓜列表().SelectMany(foo=>foo.bar.ToList();
您可以在foo.bar上使用SelectMany()

allBars.AddRange(fooList.SelectMany(foo => foo.Bars));
如果allBars变量在AddRange()之前不包含任何内容,则可以跳过对象创建:

List<Bar> allBars = fooList.SelectMany(foo => foo.Bars).ToList();
List allbar=doulist.SelectMany(foo=>foo.bar.ToList();
如果你不打算在其他地方使用傻瓜,你可以写:

List<Bar> allBars = GetFooList().SelectMany(foo => foo.Bars).ToList();
List allbar=get傻瓜列表().SelectMany(foo=>foo.bar.ToList();

Linq的SelectMany是你的朋友


林克的SelectMany是你的朋友

还有另一种变化:

List<Foo> fooList = GetFooList();
List<Bar> allBars = fooList.SelectMany(x => x.Bars).ToList();
List愚人主义者=get愚人主义者();
列出allBars=傻瓜列表。选择多个(x=>x.Bars)。ToList();
和另一个变体:

List<Foo> fooList = GetFooList();
List<Bar> allBars = fooList.SelectMany(x => x.Bars).ToList();
List愚人主义者=get愚人主义者();
列出allBars=傻瓜列表。选择多个(x=>x.Bars)。ToList();
这是另一个

   List<Bar> allBars = fooList.SelectMany(foo => foo.Bars).ToList();
List allbar=doulist.SelectMany(foo=>foo.bar.ToList();
这是另一个

   List<Bar> allBars = fooList.SelectMany(foo => foo.Bars).ToList();
List allbar=doulist.SelectMany(foo=>foo.bar.ToList();