我有一份汽车清单。每辆车都有许多门。每扇门都有颜色。我想迭代列表,只选择那些有一个以上匹配颜色的门的汽车。
我尝试过这样的事情,但它并没有像我期望的那样工作:
foreach (Car car in cars.Where(c=>c.doors.Select(d=>d.color = "Blue").Count() > 1))
{
// Do something
}
你能帮我理解我做错了吗?
答案 0 :(得分:3)
您需要将Select替换为Where并传递谓词:
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))
答案 1 :(得分:0)
您使用c.color = "blue"
作为作业。
您应该使用c.color == "blue"
或color.Equals("blue")
进行比较。