【发布时间】:2013-01-30 10:55:30
【问题描述】:
我有一个 CarData 具有以下属性的对象:PrimaryKey Make Model Year Drivetrain Country
我在列表中有大约 1000 个 CarData 对象:List<CarData> CarObjects
有没有一种简单的方法来获取不同Makes 的列表?
【问题讨论】:
我有一个 CarData 具有以下属性的对象:PrimaryKey Make Model Year Drivetrain Country
我在列表中有大约 1000 个 CarData 对象:List<CarData> CarObjects
有没有一种简单的方法来获取不同Makes 的列表?
【问题讨论】:
var makes = CarObjects.Select(car => car.Make).Distinct();
这会将列表从CarData 列表转换为Makes 列表,然后只找到新列表的不同值。
【讨论】:
var makeList = CarObjects.Select(a => a.Make).Distinct();
或者
List<MakeEnum> = CarObjects.Select(a => a.Make).Distinct().ToList();
作为一个额外的建议,您可能需要考虑将 Make 设为枚举,因为(可能)存在有限(且相当少)数量的可能汽车品牌,而不是将它们堆积到 @987654324 @。 (你没有提到 Make 是什么类型的属性,所以也许你已经在这样做了)。
【讨论】:
Distinct 的调用已在稍后的编辑中添加。
你可以使用 Linq:
CarObjects.Select ( c => c.Make ).Distinct().ToList()
【讨论】: