2017-01-09 30 views
3
List<string> testList = new List<string>(); 
testList.Add("A"); 
testList.Add("A"); 
testList.Add("C"); 
testList.Add("d"); 
testList.Add("D"); 

該查詢重複區分大小寫:獲取從列表不區分大小寫

// Result: "A" 
List<String> duplicates = testList.GroupBy(x => x) 
            .Where(g => g.Count() > 1) 
            .Select(g => g.Key) 
            .ToList(); 

將如何看起來不區分大小寫? (結果: 「A」, 「d」)

回答

7

通過使用GroupBy在這裏可以提供比較器所需的,例如的重載實施StringComparer.OrdinalIgnoreCase

var result = testList 
    .GroupBy(item => item, StringComparer.OrdinalIgnoreCase) 
    .Where(g => g.Count() > 1) 
    .Select(g => g.Key) 
    .ToList(); 
3

通過與

.GroupBy(x => x.ToLower()) 

替換

.GroupBy(x => x) 

打開所有string元件爲小寫和組不區分大小寫。

1
var result = testList.GroupBy(x => x.ToLower()) 
            .Where(g => g.Count() > 1) 
            .Select(g => g.Key) 
            .ToList();