我有一个自定义数组
MyTypeA[] mA
MyTypeA
包含的属性包括MyTypeB
和MyTypeC
(此处为{1}}和mB
,为简单起见。
我只想选择mC
的元素,mA
的值为mB
而B
的值为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);
}
是AA
类MyTypeD
的属性
我有一个错误,即查询的输出属于MyTypeA
类型,而不是MyTypeD
由于
答案 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();