在一个查询中选择多个类属性
本文关键字:选择 属性 一个 查询 | 更新日期: 2023-09-27 18:13:38
下面的代码接受类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);
有可能用一个查询做到这一点吗?
如果你真的想要像那样平坦化属性,你可以将数组提供给SelectMany():
var qAll = items.SelectMany(item => new object[] { item.A, item.B });
您可以使用ForEach:
var qAll = new List<object>();
items.ForEach(item => { qAll.Add(item.A); qAll.Add(item.B) });