使用asp.net C#获取数据表中唯一记录以外的记录

时间:2018-07-13 11:21:10

标签: c# asp.net linq datatable

我想将唯一记录和唯一记录存储在两个不同的datatable中。

我已经实现了在datatable中获取唯一记录的逻辑,但是我对如何获取唯一记录以外的记录感到困惑。

下面是我尝试过的代码。

dtExcelRows = dtExcelRows
              .AsEnumerable()
              .GroupBy(r => new 
                            { 
                              Col1 = r.Field<String>("SAP-ID") 
                            })
              .Select(g =>
                        {
                          var rowss = g.First();
                          return rowss;
                        })
             .CopyToDataTable();
             dtExcelRows.AcceptChanges();

上面的代码为我提供了唯一记录。请为我建议如何获取其他DataTable中的Other记录。

1 个答案:

答案 0 :(得分:0)

我们可以通过Skip()扩展名来获取除唯一值以外的其余项。尝试以下类似的方法,

您正在从代码中的分组项目中获取First()值。因此,我们可以跳过第一个并获取剩余的项目。

var duplicateItems = dataTable
              .AsEnumerable()
              .GroupBy(r => new
              {
                  Col1 = r.Field<String>("SAP-ID")
              })
              .Select(g => g.Skip(1)).SelectMany(x => x).CopyToDataTable();

            duplicateItems.AcceptChanges();

C# Fiddle