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

È stato utile?

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top