2009-05-17 6 views
0

J'essaye de remplir un contrôle treeview avec quelques informations et pour cela j'utilise 2 instructions LINQ séparées comme suit;Comment combiner 2 LINQ en un

Dim a = From i In CustomerTable _ 
     Group By ShipToCustName = i.Item(6), BillToCustName = i.Item(4) Into Details = Group, Count() _ 
     Order By ShipToCustName 


Dim b = From x In a _ 
     Group By ShipToName = x.ShipToCustName Into Group, Count() _ 
     Order By ShipToName 

For Each item In b 
     Console.WriteLine("Shitp To Location: " + item.ShipToName) 
     For Each x In item.Group 
      Console.WriteLine("...BillTo:" + x.BillToCustName) 
      For Each ticket In x.Details 
       Console.WriteLine("......TicketNum" + ticket.Item(0).ToString) 

      Next 
     Next 
Next 

Existe-t-il un moyen de combiner A et B en une requête? Toute aide s'il vous plaît ...

Répondre

3

Eh bien, vraiment B est une seule requête. Rappelez-vous que ce qui revient d'une déclaration Linq est un résultat IQueryable, pas le résultat réel. Cela signifie que B combine ses propres expressions avec celle de A, mais la récupération n'est pas effectuée tant que vous n'énumérez pas B. Donc, B n'est vraiment qu'une seule requête.

Questions connexes