Dato un elenco di elementi in questo modo:utilizzando LINQ per selezionare un intervallo di membri in un elenco
int[] ia = new int[] { -4, 10, 11, 12, 13, -1, 9, 8, 7, 6, 5, 4, -2,
6, 15, 32, -5, 6, 19, 22 };
C'è un modo semplice in LINQ per fare qualcosa sulla falsariga di "Seleziona gli elementi dalla - 1 fino al prossimo numero negativo (o l'elenco esaurisce) "? Un risultato positivo per -1 sarebbe (-1, 9, 8, 7, 6, 5, 4). Usare -2 darebbe il risultato (-2, 6, 15, 32).
Non un problema di compiti a casa. Sto solo guardando un'implementazione usando uno bool
, un ciclo for
e uno if
chiedendo se c'è un modo più pulito per farlo.
ho cercato 'SkipWhile' /' TakeWhile' e ha fatto lo stesso errore di Anders. Non mi è venuto in mente di saltare l'uno. Andando a lasciare questo aperto un po 'più a lungo per vedere quale varietà cade. –
Questa soluzione non includerà il primo '-1' nel set di risultati. –
Non è vero. Ma dal momento che il -1 era l'indicatore per l'inizio del set - è l'unico valore conosciuto - può essere inserito nei risultati. –