使用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)’的类型参数。 尝试显式指定类型参数
上述就是C#学习教程:使用LINQ查找重复的行(包含指定列的列表)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1023324.html