Hai bisogno di aiuto con una dichiarazione / scenario - LINQ
Domanda
Ecco lo scenario:
Dato un elenco di uscite ciascuna associata ad un numero intero a base GroupNumber. Per ogni GroupNumber distinto all'interno della Lista di uscite partendo dal GroupNumber basso (1). Passa attraverso quel numero gruppo distinto impostare ed eseguire un metodo di validazione.
In sostanza, partendo dal più basso al numero di gruppo più alto, validare una serie di uscite prima convalida di un insieme groupnumber superiore.
Grazie, Matt
Soluzione
Non c'è quasi troppo molti modi per risolvere questo:
Ecco uno per un metodo vuoto Convalida.
source
.GroupBy(x => x.GroupNumber)
.OrderBy(g => g.Key)
.ToList()
.ForEach(g => Validate(g));
Ecco uno per un metodo bool Convalida.
var results = source
.GroupBy(x => x.GroupNumber)
.OrderBy(g => g.Key)
.Select(g => new
{
GroupNumber = g.Key,
Result = Validate(g),
Items = g.ToList()
})
.ToList();
Altri suggerimenti
Se ne avete bisogno, come i gruppi:
var qry = source.GroupBy(x=>x.GroupNumber).OrderBy(grp => grp.Key);
foreach(var grp in qry) {
Console.WriteLine(grp.Key);
foreach(var item in grp) {...}
}
Se avete solo bisogno di loro ordinato come se esse sono raggruppate:
var qry = source.OrderBy(x=>x.GroupNumber);