Sono il seguente codice:dividere un elenco utilizzando LINQ
var e = someList.GetEnumerator();
var a = new List<Foo>();
var b = new List<Foo>();
while(e.MoveNext()) {
if(CheckCondition(e.Current)) {
b.Add(e.Current);
break;
}
a.Add(e.Current);
}
while(e.MoveNext())
b.Add(e.Current)
Questo sembra brutto. Fondamentalmente, scorrere un elenco e aggiungere elementi a un elenco fino a quando non viene attivata una condizione e aggiungere il resto a un altro elenco.
C'è un modo migliore ad es. usando linq? CheckCondition() è costoso, e le liste possono essere enormi, quindi preferirei non fare nulla che itera le liste due volte.
capisco il vostro codice, ma se '(e.Current)' non ha senso. Penso che stai cercando di memorizzare il valore dell'ultima chiamata 'MoveNext' (dal primo ciclo) e controlla se è andata a buon fine. – Ani
Aggiornato per avere più senso (ad esempio, aggiungere e.Current a 'b' una volta che CheckCondition è true, invece di gestirlo fuori dal ciclo – Anonym
Sì, è chiaro ora. – Ani