我有一个customers
列表(字符串),我试图找到重复的客户。
If Not customers.Count = customers.Distinct.ToList.Count Then
customers = customers.Except(customers.Distinct.ToList)
End If
但我得到以下例外:
InvalidCastException Unable to cast object of type '<ExceptIterator>d__99`1[System.String]' to type
'System.Collections.Generic.List`1 [System.String]'。
这是在列表中查找重复项的正确方法吗?
答案 0 :(得分:7)
customers = customers.GroupBy(Function(m) m) _
.Where(Function(g) g.Count() > 1) _
.Select(Function(g) g.Key).ToList
答案 1 :(得分:6)
VB版本:
Dim duplicates = listOfItems.GroupBy(Function(i) i)_
.Where(Function(g) g.Count() > 1)_
.[Select](Function(g) g.Key)
C#:
var duplicates = customers.GroupBy(x => x)
.Where(g => g.Count() > 1)
.Select(g => g.Key);