我有一个包含多个DataSet的DataTables,每个DataTables都包含多个列和一个列buildingID。我希望通过为DataSet提供一个值来过滤整个buildingID。我希望中的每个表中的行都有一个buildingID值,比如343。
在C#中有什么快速可行的方法吗?
发布于 2013-04-30 15:57:35
您可以使用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()));发布于 2013-04-30 15:58:19
那这个呢?
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.
}https://stackoverflow.com/questions/16304035
复制相似问题