C# 使用多个数据表筛选整个数据集

C# 使用多个数据表筛选整个数据集,c#,asp.net,C#,Asp.net,我有一个数据集,其中有许多数据表,每个数据表包含许多列和一列buildingID。 我想通过为buildingID提供一个值来过滤整个数据集。我希望每个表中的行的buildingID为,比如343 在C#?中有没有任何快速可行的方法可以使用,它可以从符合条件的数据表中返回筛选出的行 foreach (DataTable table in dataset.Tables) { var rows = table.Select("buildingID = " + buildingId.ToStr

我有一个数据集,其中有许多数据表,每个数据表包含许多列和一列
buildingID
。 我想通过为buildingID提供一个值来过滤整个数据集。我希望每个表中的行的buildingID为,比如343

在C#?

中有没有任何快速可行的方法可以使用,它可以从符合条件的数据表中返回筛选出的行

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.
}
var ds1=新数据集();
foreach(ds1.Tables中的数据表dt)
{
var filtereddt=dt.AsEnumerable().Where(row=>row.Field(“buildingID”)==1.ToList();
//您可以将这些列表添加到另一个列表数组或类似的内容。
}

linq可能是最好的方法,但要继续使用@NikhilAgrawal,我们需要更多地了解过滤。我的直觉是你想通过建筑ID过滤标签,这组数据代表一个建筑。我将使用linq查询集合,然后将集合转换为表示数据表的对象。这可能会有所帮助:gwin003感谢您的响应,但如果我理解正确,这将在我的数据集中的特定数据表上进行过滤。我想立刻过滤我的整个数据集。cgatian,你的解决方案听起来不错。我该怎么办?我需要一个功能齐全的数据集,只保留buildingid筛选的所有表。我需要一次访问所有筛选的表。@Diane2:LINQ查询返回所有表中所有筛选的行。啊。我要试试看。谢谢