正在筛选多个值的数据表

本文关键字:数据表 筛选 | 更新日期: 2023-09-27 18:27:02

我有两个数据表objdatatable1和objdatatable 2。

我需要过滤objdatatable2中的数据,以便objdatatable2中的market_id不应该在objdatatable 1中。

我甚至要打开linq,它将过滤不在子句上的联系人

正在筛选多个值的数据表

objdatatable2.AsEnumerable().SkipWhile(dr2 => { return objdatatable1.AsEnumerable().Any(dr1 => { return (dr1.Field<String>("market_id ") == dr2.Field<String>("market_id ")); }) });

这会将objectdatatable2中所有在'market_id'字段中具有值但未出现在objectdatatable1中同名字段中的行复制到数据表dt。在此编辑中,"market_id"字段在objectdatatable2中为string类型,在objectdatatable1中为int类型。

// This creates an empty DataTable with the same structure as objdatatable2.
DataTable dt = objdatatable2.Clone();
var results = objdatatable2.AsEnumerable().Where(r2 => !objdatatable1.AsEnumerable().Any(r1 => (r2.Field<string>("market_id") == r1.Field<int>("market_id").ToString())));
// Copy results to the DataTable only if there are results.
if (results.Count() > 0) {
    dt = results.CopyToDataTable();
}