2010-08-18 1 views
1

Data.DataTable을 열 수로 정렬하는 데 사용하는 다음 VB.NET 코드가 있습니다.Data.DataTableCollection을 사용하여 LINQ 캐스팅

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를 표시하는 방법이 있나요은 그것에게 LINQ 쿼리가 (두 번이 경우) 참조 될 때마다 DirectCast 할 필요없이 Data.DataTable입니까? 같은

답변

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 
+0

트릭의 그! 고맙습니다. –

+1

당신을 환영합니다 - 도와 드리겠습니다 :) –