循环数据集的顺序相反

时间:2016-02-09 08:17:52

标签: c# datatable dataset

我有一个数据集,例如1到' n'其中的DataTable数量,我想循环它,但顺序相反,即from DataTable n to DataTable 1。任何人都可以建议我这样做的方法。我找到了一些解决方案,但都是用于排序DataTables而非数据集。

DataSet _ds = new DataSet();
foreach (DataTable table in _ds.Tables)
{

}

3 个答案:

答案 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--];
};