c# - Linq - 从列表中取出 x 数量的不同项目

标签 c# linq

我需要使用特定属性显示对象列表中的前 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/

相关文章:

c# - 使用电子表格工具打开 protected 工作簿

c# - WCF 服务的 basicHttpBinding 上的 HTTPS

c# - 在每个条目后按名称排序

c# - DataGrid:如何操作所选项目

处理具有相同方法名称的不同类的 C# 代码

c# - 未使用OWIN承载 token 对用户登录进行身份验证

c# - 组合相同输入类型的选择表达式

c# - 使用 LINQ-to-SQL 跟踪数据库的外部更改

javascript - 用于 Javascript(JSON、数组、DOM)的 LINQ?

c# - 使用 linq 搜索 Xml 文档不会返回任何内容