我正在寻找一个LINQ函数,它返回包含这些字符串的对象列表中的唯一字符串列表。对象的字符串不是唯一的。像这样:
之前列出:
name="abc",value=3
name="xyz",value=5
name="abc",value=9
name="hgf",value=0
列出此函数将返回:
"abc","xyz","hgf"
这样的功能是否存在?当然我知道如何手动实现这个,但我很好奇LINQ是否能为我做到这一点。
答案 0 :(得分:3)
var foo = list.Select(p => p.name).Distinct().ToList();
答案 1 :(得分:2)
您可以使用Distinct
扩展方法。因此,基本上您将首先将原始对象投影到字符串集合中,然后应用Distinct方法:
string[] result = source.Select(x => x.name).Distinct().ToArray();
答案 2 :(得分:0)
(from object in objectList
select object.name).Distinct();