我有一个数据集,例如1到' n'其中的DataTable数量,我想循环它,但顺序相反,即from DataTable n to DataTable 1
。任何人都可以建议我这样做的方法。我找到了一些解决方案,但都是用于排序DataTables而非数据集。
DataSet _ds = new DataSet();
foreach (DataTable table in _ds.Tables)
{
}
答案 0 :(得分:4)
你可以使用LINQ,你需要强制转换它,因为DataTableCollection
没有实现IEnumerable<DataTable>
但只有非通用的IEnumerable
接口:
var reversedTables = _ds.Tables.Cast<DataTable>().Reverse();
foreach(DataTable table in reversedTables)
{
// ...
}
或使用普通for
- 循环:
for (int i = _ds.Tables.Count - 1; i >= 0; i--)
{
DataTable table = _ds.Tables[i];
// ...
}
答案 1 :(得分:4)
您可以改为使用for-loop
:
DataSet _ds = new DataSet();
for (int i=_ds.Tables.Count-1; i>=0; i--)
{
DataTable table = _ds.Tables[i];
}
答案 2 :(得分:0)
i
甚至更简单:
DataSet _ds = new DataSet();
for (int i=_ds.Tables.Count-1; i>=0; )
{
DataTable table = _ds.Tables[i--];
}
或使用 while-loop 执行相同操作:
int i=_ds.Tables.Count;
while (i>=0)
{
DataTable table = _ds.Tables[i--];
};