我有一个名为navigationList
的集合。此列表包含customer
个对象。
客户有一个名为Town
的属性。
该名单拥有5个客户:2个城镇“纽约”,5个城镇“马德里”。
我希望列表只能容纳2个客户。 1与城镇“纽约”和一个与“马德里”。如果2来自“纽约”,我想要最后一个。 “马德里”也是如此。
LINQ语句是什么样的?
var newList = navigationList.GroupBy(c => c.Town) // ?
答案 0 :(得分:18)
你会想要像
这样的东西var newList = navigationList.GroupBy(c => c.Town).Select(g => g.Last()).ToList();
但是,您可能希望先OrderBy
,以便Last
有意义:
var newList = navigationList.
GroupBy(c => c.Town).
Select(g => g.OrderBy(c => c.Id).Last()).
ToList();
在这种情况下,订购由客户ID完成。