我正在使用 SqlDataReader 将逐行添加到数据表中,如下所示:
while (reader.Read())
{
dataTable.LoadDataRow(reader.CurrentRow(), LoadOption.PreserveChanges);
}
这可行,但我需要能够避免向 dataTable 添加重复的行。我希望能够使用 dataTable 中的 Contains 或 Find 方法,但我找不到将 reader.CurrentRow() 中的 object[] 转换为 DataRow 进行比较而不将其添加到数据表的方法。
我已经研究了创建对象 [] 的哈希集的选项,然后在最后一次将它们全部添加到数据表中,但我忘记了默认对象 IEqualityComparer 仅比较引用。
有没有一种可行的方法来做到这一点,而无需在最后删除重复项?
如果删除重复项是唯一的方法,那么最好的方法是什么?
编辑:我将数据库中的不同行拆分为代码中的单独数据表。查询结果中的每一行都是不同的,但每一行的部分不是。不幸的是,我需要完全按照我的问题来做,因为查询的结果已经不同了。