我有一个包含多个数据表的数据集,每个数据表包含许多列加上一列buildingID
。 我想通过为buildingID提供一个值来过滤整个DataSet。我希望中的行每表的建筑ID为343.用许多数据表过滤整个数据集
在C#中有没有任何快捷方式?
我有一个包含多个数据表的数据集,每个数据表包含许多列加上一列buildingID
。 我想通过为buildingID提供一个值来过滤整个DataSet。我希望中的行每表的建筑ID为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.
}
过滤器吗?.... – 2013-04-30 15:55:01
LINQ可能是最好的途径,但@NikhilAgrawal跟进,我们需要更多地了解过滤。我的直觉是说你想通过建立ID过滤表格,这组数据表示一个建筑物。我会使用linq查询该集合,然后将该集合转换为表示数据表格的对象。 – cgatian 2013-04-30 15:57:46
这可能会有所帮助:http://msdn.microsoft.com/en-us/library/bb669073.aspx – gwin003 2013-04-30 15:58:13