2012-03-29 66 views
1

我怎樣才能將我的字符串列表:篩選器列表數據C#

List<string> appliedFilters = filterString.Split(',').Select(n => n).ToList(); 

進入無重複列表?

我的字符串(appliedFilters)名單如下:

7-27, 
2-37, 
7-28, 
9-18, 
9-22, 
9-80 

我需要輸出這個名單沒有重複的字符串的第一部分,例如:

7-27-28, 2-37, 9-18-22-80 

我確定在這裏有一個LINQ查詢,但無法弄清楚。

+0

您可以省略'Select(n => n)' – 2012-03-29 10:09:03

回答

5
filterString.Split(',') 
    .Select(s => s.Split('-')) 
    .GroupBy(ss => ss[0]) 
    .Select(group => string.Join("-", new[]{group.Key}.Concat(group.Select(ss => ss[1])).ToArray())); 
+0

您不需要ToArray。 – 2012-03-29 10:19:43

+1

我認爲這是優雅與可讀性成爲問題的時候。我個人很難理解LINQ中發生的事情。無論如何,建議一個解決方案,仔細檢查,看起來會起作用。 – SkonJeet 2012-03-29 10:20:55

+0

正是我需要的和一個令人印象深刻的LINQ查詢:)謝謝 – Leigh 2012-03-29 10:25:03