使用LINQ查找重复的行(包含指定列的列表)
我使用下面的代码获取3列的重复行:String,Date,Money。 我想知道是否有任何通用方法可以在此LINQ中输入动态列名列表来查找重复行?
DataTable allDuplicates = dt.AsEnumerable() .GroupBy(dr => new { Field1 = dr.Field("String"), Field2 = dr.Field("Date"), Field3 = dr.Field("Money"), }) .Where(g => g.Count() > 1) .SelectMany(g => g) .ToList().CopyToDataTable(); }
如何使用自定义ArrayEqualityComparer
类型(例如此处列出的类型):
string[] colsToConsider = ... var allDuplicates = dt.AsEnumerable() .GroupBy(dr => colsToConsider.Select(dr.Field
如果你发现隐藏使用数组索引Dictionary
你也可以考虑使用Dictionary
(和一个相关的字典比较器)。
执行上面的代码。
无法从用法中推断出方法’System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable,System.Func)’的类型参数。 尝试显式指定类型参数