LINQ:如何选择具有给定值的多个属性的数组元素

时间:2017-07-11 14:39:25

标签: c# linq

我有一个自定义数组

MyTypeA[] mA

MyTypeA包含的属性包括MyTypeBMyTypeC(此处为{1}}和mB,为简单起见。

我只想选择mC的元素,mA的值为mBB的值为mC

我尝试过类似的事情:

C

mA.Select( x=>x.myB.Equals(B) && x=>x.myC.Equals(C)).ToList(); 但没有进展。

然后我希望将此结果用作

中的参数(arg)
Where()

其中mD是数组foreach (MyTypeD oneD in mD) oneD.AddTo(arg);

其中MyTypeD[]已被声明为MyTypeD的方法:

AddTo()

此处public void AddTo(List<MyTypeA> mAin) { mAin.CopyTo(AA); } AAMyTypeD的属性

我有一个错误,即查询的输出属于MyTypeA类型,而不是MyTypeD

由于

2 个答案:

答案 0 :(得分:3)

如果您想过滤,当然必须使用Where,但不能使用多个x=>

var aQuery = mA.Where(a => a.myB.Equals(B) && a.myC.Equals(C));

为了完整起见,您也可以使用多个Where

var aQuery = mA.Where(a => a.myB.Equals(B)).Where(a => a.myC.Equals(C));

答案 1 :(得分:1)

尝试:

mA.Where( x=>x.myB.Equals(B) && x.myC.Equals(C)).ToList();