2013-03-12 2 views
1

(Упрощенный)LINQ: Список уникальных наименований

У меня есть список именных строк. Первыми являются имя всегда.

List<string>() 
    fredXXsmith 
    aliceXFloor 
    billXXjohnson 
    fredXXperterson 

Как я могу получить список уникальных имен от этих строк в LINQ?

fredXX 
    aliceX 
    billXX 
+0

Это может быть немного старая, но она все еще может быть полезно: [http://stackoverflow.com/a/1300116/1026130](http://stackoverflow.com/a/1300116/1026130) –

ответ

4

Вам просто нужно проецировать полные имена подстрок, а затем использовать Distinct:

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

Это предполагает, что (учитывая ваш пример), что вы всегда есть по крайней мере 6 символов (дополненное X). Добавьте ToList звонок в конец цепи, если вы хотите List<string>.

+1

Ты слишком быстро Джон :) – Bort

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

Substring получает вас первые шесть символов, и Distinct дает уникальные результаты.

Смежные вопросы