In Linq è tutto molto più semplice, l'istruzione GroupBy(...) ci restituisce una lista di tabelle, ogni tabella è costituita da tutti gli elementi della tabella madre che hanno in comune la clausola di raggruppamento.
es. abbiamo questa tabella:
Vogliamo raggruppare i clienti per provincia:
Dim db As New myDataContext
dim clientiPerProvincia = db.Clienti.GroupBy(Function(c) c.Provincia) il risultato che otteniamo è che in clientiPerProvincia abbiamo 4 tabelle
ognuna delle quali può essere raggiungibile, per esempio, con un istruzione For oppure direttamente col metodo ElementAt(...).
es.
dim primaProvinciaPrimoCliente as string = clientiPerProvincia.ElementAt(0).ElementAt(0).Cliente
Il primo ElementAt individua la tabella, il secondo il cliente.
oppure
For Each p In clientiPerProvincia 'scorre ogni tabella
Console.Writeline(p.key) 'key contiene la chiave del raggruppamento
For Each c In p 'scorre ogni cliente
Console.Writeline("--" & c.Cliente)
Next
Next
il risultato sarà :
TA
--A
--B
--E
BR
--C
LE
--D
--F
--G
BA
--H


0 commenti:
Posta un commento