我使用以下函数根据一个或多个字段删除IEnumerable<DataRow>
中的重复值:
public static IEnumerable<DataRow> RemoveDuplicates(this IEnumerable<DataRow> rows, IEnumerable<string> fields)
{
return rows
.GroupBy(row => new MultiFieldComparer(fields.Select(f => row[f])))
.Select(g => g.First());
}
E.g。如果字段为firstname
,lastname
和email
,则使用LINQ GroupBy
的函数将仅返回具有不同值firstname
的值,{{1 }}和lastname
;
当我尝试使用以下查询在我的数据库上模拟此行为时 我得到不同数量的结果:
email
在我的函数中,我利用了SELECT firstname,lastname,email
FROM myTable
GROUP BY firstname,lastname,email
我用来根据多个字段进行比较。这是这个类的代码:
MultiFieldComparer
我想知道差异来自哪里?