2017-07-11 71 views
-2

我有一个自定义阵列LINQ:如何选择具有多个属性与给定的值

MyTypeA[] mA 

MyTypeA包含属性既包括MyTypeBMyTypeC(名为mBmC为简单起见在这里)

数组元素

我想只选择那些mA的元素,这样mB的值为BmC的值为C

我想是这样的:

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

或也Where(),但没有取得进展。

我然后要在

foreach (MyTypeD oneD in mD) oneD.AddTo(arg); 

其中MD是一个数组MyTypeD[]

其中AddTo()已被宣布为MyTypeD的方法使用该结果由此作为参数(ARG):

public void AddTo(List<MyTypeA> mAin) 
{ 
     mAin.CopyTo(AA); 
} 

这里AAMyTypeD类型的属性MyTypeA

我有一个错误的查询的输出是MyTypeD型的,而不是一个List<MyTypeA>

感谢

回答

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)); 
+0

OK我想,但我有一个问题......要编辑的问题 – gwizardry

+0

而不是在foreach使用oneD.AddTo(mD.ToList()); –

+0

虽然不是在foreach范围内定义的oneD吗? – gwizardry

1

尝试:

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

好吧,我试过了,但后来我有另一个问题...要编辑问题 – gwizardry

相关问题