【发布时间】:2011-11-23 01:03:12
【问题描述】:
这是一个棘手的问题。我试图展平 LINQ 对象集合。集合中的每个项目都有可能拥有两个其他对象的集合。请参阅下面的示例。
public class DemoClass
{
public string Name {get; set;}
public string Address {get; set;}
public List<Foo> Foos = new List<Foo>();
public List<Bar> Bars = new List<Bars>();
}
我一直在做的是使用这个代码块来展平这个对象
var output = from d in DemoClassCollection
from f in d.Foos
from b in d.Bars
select new {
d.Name,
d.Address,
f.FooField1,
f.FooField2,
b.BarField1,
b.BarField2
};
但我遇到的问题是我得到的结果是只有那些在 Foos 和 Bars 集合中有对象的 DemoClass 对象。无论 Foos 和 Bars 集合中是否有对象,我都需要获取 DemoClass 中的所有对象。
任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
“扁平化”是什么意思?这并不是说这就像一棵树,而您想要获得一个序列。您能否提供一些输入值和预期结果的示例?