我有一个包含许多DataTable的DataSet,每个DataTable包含许多列和一列buildingID
。
我想通过为buildingID提供一个值来过滤整个DataSet。我希望每个表中的行的buildingID为343。
C#中有没有快捷的方式?
答案 0 :(得分:3)
您可以使用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()));
答案 1 :(得分:0)
这个怎么样?
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.
}