我以下列格式从服务接收数据:
public class Foo
{
string Name;
}
public class Bar
{
int ID;
List<Foo> Foos;
}
public class Container
{
List<Bar> Bars;
}
我需要编写一个方法,在以下类中返回Container中所有Foos的Names,并与其关联Bar的ID配对:
public class FooBar
{
int BarID;
Foo Name;
}
这就是我提出的:
IEnumerable<FooBar> FooBars(Container c)
{
foreach (var b in c.Bars)
{
foreach (var f in b.Foos)
{
yield return new FooBar() { BarID = b.ID; Name = f.Name; }
}
}
}
我有两个问题:
答案 0 :(得分:5)
这是LINQ的SelectMany的查询语法,它允许您执行您所描述的内容。至于你为什么要这样做,我个人觉得它更容易阅读。
from b in c.Bars
from f in b.Foos
select new FooBar {BarID = b.ID, Name = f.Name};