2013-12-12 58 views
1

我有一個汽車列表。每輛車都有一些門。每扇門都有一個顏色。我想遍歷列表並僅選擇具有多個匹配顏色門的汽車。linq在列表中有多個匹配元素的foreach項目

我已經試過這樣的事情,但它不工作像我期望它:

foreach (Car car in cars.Where(c=>c.doors.Select(d=>d.color = "Blue").Count() > 1)) 
{ 
    // Do something  
} 

你能幫我明白我做錯了嗎?

回答

3

您需要更換選擇哪裏,並可通過一個謂語:

foreach (Car car in cars.Where(c=>c.doors.Where(d=>d.color == "Blue").Count() > 1)) 

使其更短:

foreach (Car car in cars.Where(c=>c.doors.Count(d=>d.color == "Blue") > 1)) 
0

您使用c.color = "blue"這是分配。 您應該使用c.color == "blue"color.Equals("blue")進行比較。

相關問題