假设我们有一个主要的详细信息对象,如下所示。
public class A
{
public string PropA{ get; set; }
public List<B> obj { get; set; }
}
public class B
{
public string PropB{ get; set; }
public List<C> obj { get; set; }
}
public class C
{
public string PropC{ get; set; }
}
另一个目标是
public class D
{
public string PropA{ get; set; }
public string PropB{ get; set; }
public string PropC{ get; set; }
}
现在我们要将主要细节对象A的复制数据复制到单个对象D.是否可能?我怎么解决这个问题。你会给我一个通用的方法,将所有类型的主细节对象转换为单个对象。感谢。
答案 0 :(得分:0)
您可以使用LINQ的SelectMany()
:
A myA = //...
var Ds = myA.SelectMany(a => a.obj.SelectMany(b => b.obj.Select(c => new D {
PropA = a.PropA,
PropB = b.PropB,
PropC = c.PropC})));
或者,在查询语法中(哇,这看起来更清晰):
A myA = //...
var Ds = from a in myA
from b in a.obj
from c in b.obj
select new D
{
PropA = a.PropA,
PropB = b.PropB,
PropC = c.PropC
};