2017-07-11 94 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

相關問題