LINQ groupby问题

Her*_*art 6 c# linq group-by

我有一个名为的集合navigationList.此列表包含customer对象.客户有一个叫做的房产Town.

该名单拥有5个客户:2个城镇"纽约",5个城镇"马德里".

我希望列表只能容纳2个客户.1与城镇"纽约"和一个与"马德里".如果2来自"纽约",我想要最后一个."马德里"也是如此.

LINQ语句是什么样的?

var newList = navigationList.GroupBy(c => c.Town) // ? 
Run Code Online (Sandbox Code Playgroud)

Yak*_*ych 18

你会想要类似的东西

var newList = navigationList.GroupBy(c => c.Town).Select(g => g.Last()).ToList();
Run Code Online (Sandbox Code Playgroud)

但是,你可能想OrderBy先,所以这Last是有意义的:

var newList = navigationList.
              GroupBy(c => c.Town).
              Select(g => g.OrderBy(c => c.Id).Last()).
              ToList();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,订购由客户Id完成.