我需要使用特定属性显示对象列表中的前 4 个元素。不过,我只想显示前四个“不同”元素。因此,例如,如果我有一个“Car”列表,假设 Car 对象有一个名为“Color”的字符串属性,列表看起来像:
Car: red;
Car: red;
Car: blue;
Car: green;
Car: green;
Car: orange;
Car: purple;
在这种情况下,我希望代码打印出前四个不同的元素“红色、蓝色、绿色、橙色”。
到目前为止,我的思路是:
String.Join("," ,cars.Take(4).Distinct().Select(a => String.Format("{0}", a.Color)));
最佳答案
尝试调用 Select
,然后调用 Distinct
,然后调用 Take
:
String.Join(",", cars.Select(a => a.Color).Distinct().Take(4)));
此外,string.Join
会为您调用ToString
,因此您不需要使用String.Format
(除非您确实需要专门格式化字符串)。
关于c# - Linq - 从列表中取出 x 数量的不同项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20639905/