2013-12-12 57 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")进行比较。

相关问题