以相反顺序循环数据集
Looping dataset in reverse order
我有一个数据集,其中包含 1 到 'n' 个数据表,我想循环它,但顺序相反,即 from DataTable n to DataTable 1
。任何人都可以建议我一种方法来做到这一点。我找到了一些解决方案,但所有解决方案都是为了对数据表而不是数据集进行排序。
DataSet _ds = new DataSet();
foreach (DataTable table in _ds.Tables)
{
}
您可以使用 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];
// ...
}
您可以使用 for-loop
代替:
DataSet _ds = new DataSet();
for (int i=_ds.Tables.Count-1; i>=0; i--)
{
DataTable table = _ds.Tables[i];
}
或在 数组索引器访问器 :
中递减 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--];
};
我有一个数据集,其中包含 1 到 'n' 个数据表,我想循环它,但顺序相反,即 from DataTable n to DataTable 1
。任何人都可以建议我一种方法来做到这一点。我找到了一些解决方案,但所有解决方案都是为了对数据表而不是数据集进行排序。
DataSet _ds = new DataSet();
foreach (DataTable table in _ds.Tables)
{
}
您可以使用 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];
// ...
}
您可以使用 for-loop
代替:
DataSet _ds = new DataSet();
for (int i=_ds.Tables.Count-1; i>=0; i--)
{
DataTable table = _ds.Tables[i];
}
或在 数组索引器访问器 :
中递减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--];
};