【问题标题】:LINQ casting with a Data.DataTableCollection使用 Data.DataTableCollection 进行 LINQ 强制转换
【发布时间】:2011-03-31 18:18:38
【问题描述】:

我有以下 VB.NET 代码,用于按列数对 Data.DataTable 进行排序。

For Each dtTarget As Data.DataTable In _
    From x In Target.Tables _
    Where DirectCast(x, Data.DataTable).Rows.Count > 0 _
    Order By DirectCast(x, Data.DataTable).Columns.Count
...
Next

有没有办法表明 x 是一个 Data.DataTable 而不必在 LINQ 查询中每次引用它(在这种情况下是两次)时直接转换它?

【问题讨论】:

    标签: .net asp.net vb.net linq linq-to-dataset


    【解决方案1】:

    类似:

    Target.Tables.Cast<Data.DataTable>()
    

    然后对此进行查询。并且您应该将代码适当地重构为几行以使其更具可读性。

    (这是 C# - 但我会翻译它,2 秒)

    翻译:

    Dim query = From x In Target.Tables.Cast(Of Data.DataTable)() _
     Where x.Rows.Count > 0 _
     Order By x.Columns.Count _
     Select x
    
    For Each dtTarget As var In query
       ...
    Next
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-14
      • 2014-03-07
      • 1970-01-01
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多