【问题标题】:Comparing two datatables through Linq通过 Linq 比较两个数据表
【发布时间】:2012-10-15 00:09:12
【问题描述】:

您好,我正在尝试通过 Linq 比较两个 datatable。但我得到了这个例外:

具体的演员阵容无效

请帮助我,因为我是 Linq 的新手。这是我正在使用的代码:

var matched1 = from table1 in dtAvailableStores.AsEnumerable()
               join table2 in dtControlStores.AsEnumerable() 
               on table1.Field<int>("STORE_NBR") 
               equals table2.Field<int>("STORE_NBR")
               select table1;

这里STORE_NBR是一个字符串值。

【问题讨论】:

    标签: c# linq datatable


    【解决方案1】:

    这段代码你可以有一个相当不错的想法:

    var qry1 = datatable1.AsEnumerable().Select(a => new { MobileNo = a["ID"].ToString() });
    var qry2 = datatable2.AsEnumerable().Select(b => new { MobileNo = b["ID"].ToString() });
    
    var exceptAB = qry1.Except(qry2);
    
    DataTable dtMisMatch = (from a in datatable1.AsEnumerable() join ab in exceptAB on a["ID"].ToString() equals ab.MobileNo select a).CopyToDataTable();
    

    参考资料:

    1. Compare two datatable using LINQ Query
    2. Compare two DataTables for differences in C#?

    【讨论】:

      【解决方案2】:

      如果该字段实际上不是 int,则会发生这种情况。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-23
        • 1970-01-01
        • 1970-01-01
        • 2020-08-06
        相关资源
        最近更新 更多