我有一个对象列表。每个对象都包含一个名为“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/