LINQ可以用于从DataTable中提取符合指定列值的行吗

本文关键字:用于 DataTable 提取 LINQ | 更新日期: 2023-09-27 18:20:14

我正在编写一个C#应用程序,该应用程序需要从DataTable中提取其中一列中包含特定值的行。

示例数据如下所示;

ID      Value1   Value2
-----------------------
1       AAA      BBB
2       MMM      CCC
1       RRR      999
2       ZZZ      XXX

我想将ID=1和ID=2的行提取到单独的新DataTables中。LINQ中有什么可以做到这一点吗?我还将遇到这样的情况:我将有两列作为行的键值。

LINQ可以用于从DataTable中提取符合指定列值的行吗

一种非常简单的方法:)

List<DataTable> Tables = new List<DataTable>();
//Have some loop to search each item
IEnumerable<DataRow> query = from MyRows in Olddt.AsEnumerable()
                             where MyRows.Field<int>("ID") == ItemToSearch || 
                             MyRows.Field<string>("Value1").Contains(ItemToSearch ) || 
                             MyRows.Field<string>("Value2").Contains(ItemToSearch )
                             select MyRows;
DataTable dtNew = query.CopyToDataTable();
Tables.Add(ss); // Add New Datatable to Collection of DataTables.