LINQ:唯一名称列表

时间:2013-03-12 19:42:08

标签: c# linq

(简体)

我有一个全名字符串列表。第一个 6 字符始终是名字

List<string>()
  fredXXsmith
  aliceXFloor
  billXXjohnson
  fredXXperterson

如何在LINQ中从这些字符串中获取唯一名字的列表?

  fredXX 
  aliceX 
  billXX

3 个答案:

答案 0 :(得分:4)

您只需将全名投影到子字符串,然后使用Distinct

var firstNames = names.Select(x => x.Substring(0, 6))
                      .Distinct();

这是假设(给出你的例子)你总是至少有6个字符(用X填充)。如果您需要ToList,请在链的末尾添加List<string>来电。

答案 1 :(得分:3)

names.Select(fullName => fullName.Substring(0, 6)).Distinct();

Substring为您提供前六个字符,Distinct为您提供独特的结果。

答案 2 :(得分:2)

names.Select(x => x.Substring(0,6)).Distinct()