使用dotnet 2.0。 我目前有这样的代码:
DataView dv = new DataView(dsTrans.Transactions, filterSpec, sortSpec,
DataViewRowState.CurrentRows);
foreach (DataRowView dvr in dv)
{
DSTransactions.TransactionsRow transRow = (DSTransactions.TransactionsRow)dvr.Row;
// do something with transRow
}
其中“dsTrans”是强类型数据集。我想知道是否有更类型安全的方法来迭代DataView的行,这不涉及使用强制转换(或使用“as”关键字)。
(请注意,需要进行一些排序和过滤,这就是使用DataView的原因)
感谢。
答案 0 :(得分:1)
你可以试试这个:
// Only one cast here
Enumerator<DSTransactions.TransactionsRow> enumer = (IEnumerator<DSTransactions.TransactionsRow>)dv.GetEnumerator();
while (enumer.MoveNext())
{
// enumer.Current will be of type DSTransactions.TransactionsRow
Console.WriteLine(enumer.Current);
}
enumer.Dispose();