为了账号安全,请及时绑定邮箱和手机立即绑定

用LINQ区分类的性质

用LINQ区分类的性质

C#
慕尼黑8549860 2019-08-02 07:02:52
用LINQ区分类的性质我有一个收藏品:List<Car> cars = new List<Car>();汽车是由其财产来识别的。CarCode.我收藏了三辆车,还有两辆有着完全相同的编码。如何使用LINQ将此集合转换为具有独特CarCodes的汽车?
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

您可以使用分组,并从每个组获得第一辆汽车:

List<Car> distinct =
  cars  .GroupBy(car => car.CarCode)
  .Select(g => g.First())
  .ToList();


查看完整回答
反对 回复 2019-08-03
?
POPMUISE

TA贡献1765条经验 获得超5个赞

使用MoreLINQ,它有一个DistinctBy方法:)

IEnumerable<Car> distinctCars = cars.DistinctBy(car => car.CarCode);

(这只适用于LINQtoObjects,请注意。)



查看完整回答
反对 回复 2019-08-03
?
FFIVE

TA贡献1797条经验 获得超6个赞

与Guffa相同,但作为扩展方法:

public static IEnumerable<T> DistinctBy<T, TKey>(this IEnumerable<T> items, Func<T, TKey> property){
    return items.GroupBy(property).Select(x => x.First());}

用作:

var uniqueCars = cars.DistinctBy(x => x.CarCode);



查看完整回答
反对 回复 2019-08-03
  • 3 回答
  • 0 关注
  • 383 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信