Ho una lista che è dichiarata di seguito, all'inizio ho impostato di default gli elementi della lista su {-1, -}. Si prega di notare che tutto il programma le dimensioni dell'elenco è fissata a 2..NET Approccio migliore elenco
List<int> list = new List<int>(new int[] {-1, -1});
La mia domanda è per quanto riguarda, quale sarebbe l'approccio migliore se ho bisogno di sovrascrivere i due valori nella lista.
int x = GetXValue();
int y = GetYValue();
Approccio 1:
list = new List<int>(new int[] {x, y});
Approccio 2:
list[0] = x;
list[1] = y;
quello che sarebbe un approccio migliore? Con il secondo approccio, anche se sono sicuro che inizialmente ci sono 2 valori impostati, posso correre il rischio dell'eccezione Argument index out of range
. Ma il primo approccio potrebbe mangiare più memoria (correggimi se sbaglio!) Poiché sto creando una nuova lista ogni volta.
Esiste una soluzione più semplice, e/o meglio
Bel call on point. Stavo pensando che l'IDictionary avrebbe ottenuto lo stesso risultato. –
+1: l'utilizzo di un elenco (di dimensioni dinamiche) crea ambiguità per il tipo, in cui i commenti DEVONO essere utilizzati per indicare l'utilizzo previsto. Se non si desidera un tipo CLR, si richiede una struttura o un oggetto personalizzato. –
+1 - Idea intelligente! –