代码之家  ›  专栏  ›  技术社区  ›  Moe Sisko

从DataView迭代强类型行的更好方法?

  •  0
  • Moe Sisko  · 技术社区  · 15 年前

    使用Dotnet2.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”是强类型数据集。我想知道是否有一种更安全的类型迭代数据视图行的方法,它不涉及使用强制转换(或使用“as”关键字)。

    (请注意,需要一些排序和筛选,这就是使用数据视图的原因)

    谢谢。

    1 回复  |  直到 12 年前
        1
  •  1
  •   nawfal Donny V.    12 年前

    你可以试试这个:

    // 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();