过滤整个数据集与许多数据表

本文关键字:许多 数据表 数据集 过滤 | 更新日期: 2023-09-27 18:11:27

我有一个数据集与许多数据表每个包含许多列加列buildingID。我想通过给它一个buildingID值来过滤整个数据集。我希望每个表中的行具有buildingID,例如343。

在c#中有什么快速可行的方法吗?

过滤整个数据集与许多数据表

您可以使用DataTable.Select,它从符合条件的DataTable中返回经过筛选的行。

foreach (DataTable table in dataset.Tables) {
    var rows = table.Select("buildingID = " + buildingId.ToString());
    // Do stuff with filtered rows
}

要轻松获取符合条件的所有行,这里有一个LINQ表达式:

var rows = dataset.Tables.SelectMany(
    t => t.Select("buildingID = " + buildingId.ToString()));

这个怎么样?

var ds1 = new DataSet();
foreach (DataTable dt in ds1.Tables)
{
    var filtereddt = dt.AsEnumerable().Where(row => row.Field<int>("buildingID") == 1).ToList();
    //you can add these lists to another list array or something like that.
}