sto impazzendo per una sciocchezza(almeno spero)..
qual'e' la sintassi da usare per fare un GroupBy su una collection/LinqQuery?
ovvero vorrei qualcosa del genere
var query = myList.GroupBy(itm => itm.field1,itmfield2,...);
grazie!!
crixo ha scritto:
sto impazzendo per una sciocchezza(almeno spero)..
qual'e' la sintassi da usare per fare un GroupBy su una collection/LinqQuery?
ovvero vorrei qualcosa del genere
var query = myList.GroupBy(itm => itm.field1,itmfield2,...);
grazie!!
Ciao,
si era già discusso (parecchio) in merito al tuo post.

http://forum.aspitalia.com/forum/post/328317/Help-Linq--Generic-List.aspx?PageIndex=2
Vedi se ti può essere utile.

Fabrizio Canevali
cosa di preciso non ti è chiaro?

su msdn trovi diversi esempi su come raggruppare con "chiavi composite" questo è uno


 var wordGroups2 =
            from w in words2
            group w by w[0] into grps
            where (grps.Key == 'a' || grps.Key == 'e' || grps.Key == 'i'
                   || grps.Key == 'o' || grps.Key == 'u')
            select grps;


ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
In realta' mi sono reso conto che un distinct mi e' sufficiente e per usare multivalues il modo migliore e' creare un IEqualityComparer.
il mio problema e' che usando lambada puoi esegire operazioni su un solo field (o io non ho ancora trovato la sitassi per usare piu' fileds) ovvero:
.GroupBy(itm => itm.Field1)
ma se volessi raggruppare per piu' di un filed non ho idea di come sia la sitassi
.GroupBy(itm=> itm.Field1, itm.Field2) ma questo meta code non funziona
anche se e' piu' "lavoro" IEqualityComparer o IComparer per l'orderBy...
hanno risolto il mio caso

ciao e grazie
di nulla, effettivamente scrivere alcune espressioni non è semplice, ma sono sicuro che con tempo ed esperienza diventeranno sempre più presenti nel nostro codice.

ciao e buon lavoro

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
crixo ha scritto:
In realta' mi sono reso conto che un distinct mi e' sufficiente e per usare multivalues il modo migliore e' creare un IEqualityComparer.
il mio problema e' che usando lambada puoi esegire operazioni su un solo field (o io non ho ancora trovato la sitassi per usare piu' fileds) ovvero:
.GroupBy(itm => itm.Field1)
ma se volessi raggruppare per piu' di un filed non ho idea di come sia la sitassi
.GroupBy(itm=> itm.Field1, itm.Field2) ma questo meta code non funziona
anche se e' piu' "lavoro" IEqualityComparer o IComparer per l'orderBy...
hanno risolto il mio caso

ciao e grazie
Ciao,
il mistero continua ... anche se mi sono ripromesso di scoprire l'arcano.

Fabrizio Canevali
GroupBy e Join permettono di usare un solo "campo" perché in realtà i valori ce li possiamo inventare usando gli anonymous type.
Esempio
.GroupBy(itm => new {itm.Field1, itm.Field2}) 

Questo perché gli anonymous sono dal punto di vista dell'hashcode univoci per la combinazione delle loro proprietà e quindi per fetti per LINQ to Object, ma anche per Linq To SQL che se non erro è abbastanza intelligente da capirlo.
Ne parlo meglio qua
http://blogs.aspitalia.com/ricciolo/post2197/Anonymous-Type-CSharp-3.0.aspx

Ciao

Il mio blog
Homepage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.