List: TRE Metodi di Merge rapidi ed immediati

List or not list? Questo non è il dilemma principale dell’articolo. In questo brevissimo HowTo desidero mostrare come si può effettuare in pochissime righe di codice l’unione di due List (nel nostro caso List
HowTo: AddRange, Concat e Linq
I tre metodi che ho scritto offrono lo stesso risultato finale, ma in modalità diverse.
AddRange:
*public void AddRange (System.Collections.Generic.IEnumerable
*
Ad una lista viene aggiunta interamente la seconda in coda. Attenzione: Non vi è nessun ritorno in quanto è la lista stessa che viene modificata. NOn è un caso che nel codice di esempio venga esposta nella firma con ref. In questo modo voglio sia chiaro per tutti che la lista è lei a subire la modifica.
Concat:
public static System.Collections.Generic.IEnumerable
Date due liste, viene fornita in uscita una terza lista di tipo IEnumerable
Linq:
Utilizzando Linq è possibile scorrere entrambe gli elementi delle due liste ed unirli in una terza tramite il Concat. Se la domanda è perchè utilizzare questa soluzione e non la precedente, la risposta è semplice. In caso di bisogno possiamo applicare dei filtri (.Where) su una o entrambe le liste per ottenere molto di più della semplice unione.
Quale usare?
Non esiste una regola a mio avviso. Personalmente evito la sintassi Linq in questo caso se non ho necessità di applicare filtri. Delle due rimanenti allora quale uso? La risposta è contenuta in una nuova domanda: Mi serve mantenere le due liste coi valori originali? Oppure posso “sporcarne” una delle due inserendo all’interno l’altra? Merge With AddRange
|
|
Merge With Concat
|
|
Merge With Linq
|
|
Link Utili:
List