1

Data.DataTableを列数で並べ替えるために使用している次のVB.NETコードがあります。

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

LINQクエリで参照されるたびに(この場合は2回)DirectCastを実行しなくても、xがData.DataTableであることを示す方法はありますか?

4

1 に答える 1

3

何かのようなもの:

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
于 2010-08-18T19:32:32.640 に答える