以下代码采用C类的集合,并创建一个由两个属性A和B的值组成的集合.A和B放在同一个集合中:
class A
{
public int x { get; set; }
}
class B
{
public int x { get; set; }
}
class C
{
public A A { get; set; }
public B B { get; set; }
}
..........
var items = new List<C>()
{
new C()
{
A = new A() {x = 1},
B = new B() {x = 2}
},
new C()
{
A = new A() {x = 3},
B = new B() {x = 4}
},
};
var qA = from item in items
select (object)item.A;
var qB = from item in items
select (object)item.B;
var qAll = qA.Concat(qB);
是否可以使用一个查询执行此操作?
答案 0 :(得分:2)
如果您真的想要展平这样的属性,可以将数组提供给SelectMany():
var qAll = items.SelectMany(item => new object[] { item.A, item.B });
答案 1 :(得分:1)
您可以使用ForEach:
var qAll = new List<object>();
items.ForEach(item => { qAll.Add(item.A); qAll.Add(item.B) });