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

用LINQ区分类的性质

用LINQ区分类的性质

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

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

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

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


查看完整回答
反对 回复 2019-07-20
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

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

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

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


查看完整回答
反对 回复 2019-07-20
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

与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-07-20
  • 3 回答
  • 0 关注
  • 411 浏览

添加回答

举报

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