c# - 使用 Lambda/Linq 获取按字母顺序排列的项目列表?

标签 c# linq lambda

我有一个对象列表。每个对象都包含一个名为“DisplayName”的属性。

我想创建另一个字符串对象列表,其中每个字符串代表初始列表中所有对象的 DisplayName 属性中的第一个字母或字符(可以是数字),我希望列表是不同的。

例如,如果我的列表包含以下三个对象:

(1) 显示名称 = '安东尼' (2) DisplayName = '丹尼斯' (3) DisplayName = '约翰'

我想创建另一个包含以下三个字符串的列表:

(1) 'A' (2) 'D' (3) 'J'

知道如何使用 lambda 表达式或 linq 以最少的编码来做到这一点吗?

最佳答案

像这样:

list.Select(o => o.DisplayName[0].ToString())
    .Where(s => Char.IsLetter(s, 0))
    .Distinct().ToList();

已编辑

关于c# - 使用 Lambda/Linq 获取按字母顺序排列的项目列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2112674/

相关文章:

java - 将 Jackson JSON 对象引用转换为 JSON.Net 对象引用

c# - WCF 异步调用改为同步运行

C# (.NET 3.5) 有没有办法得到这个函数名?

python - 我需要从云监视日志中抓取日志并将其加载到 s3 以及从 s3 加载到数据仓库

c# - 如何使用表达式检查 !=null 针对用户定义的数据类型?

c# - 保持一个拆分容器面板固定宽度?

使用双泛型的 C# 类 : give only one when both of them should be the same?

c# - 加快 linq/实体结果的返回速度

linq - 如何使用 linq 简化数字范围的生成?

linq - 等同于 JOIN 的点符号