代码之家  ›  专栏  ›  技术社区  ›  Dave Doknjas

DataTable行属性

  •  1
  • Dave Doknjas  · 技术社区  · 7 年前

    Dim dt As New DataTable()
    Dim x = dt(0) 'instead of Dim x = dt.Rows(0)
    

    C#要求显式调用“Rows”属性:

    DataTable dt = new DataTable();
    var x = dt.Rows(0);
    

    1 回复  |  直到 7 年前
        1
  •  3
  •   jmcilhinney    7 年前

    如果检查VB项目的引用,您将看到System.Data.DataSetExtensions.dll有一个引用。去掉它,你会发现你的代码在VB中不再工作了。VB编译器似乎是为了映射以下内容而编写的:

    Dim x = dt(0)
    

    对此:

    Dim x = dt.AsEnumerable().ElementAt(0)
    

    其中,C编译器不执行等效操作,您必须显式调用这些方法。对于VB编译器来说,做这些小而有用的事情来隐藏一些复杂性并不罕见。就我个人而言,我总是使用 Rows 不管怎样都是财产。这样做又不是很繁重。