Domanda

Se sto usando un ArrayList in C # .NET, l'ordine è garantito per rimanere lo stesso dell'ordine in cui vi aggiungo degli articoli?

È stato utile?

Soluzione

Sì, gli elementi vengono sempre aggiunti alla fine (se non diversamente specificato, ad es. con una chiamata a Inserisci ). In altre parole, se lo fai:

int size = list.Count;
int index = list.Add(element);
Assert.AreEqual(size, index); // Element is always added at the end
Assert.AreEqual(element, list[index]); // Returned index is position in list

La posizione cambierà se si rimuovono eventuali elementi precedenti o si inseriscono nuovi elementi prima di esso, ovviamente.

C'è qualche buona ragione per usare ArrayList piuttosto che List<T> a proposito? Le raccolte non generiche sono quindi 2003 ...

(L'ordine è stabile anche in <=>, tra l'altro.)

Altri suggerimenti

Sì, a meno che parte del codice non cambi l'ordine per es. swapping.

Sì, lo è. Dal momento che è memorizzato come un array.

Altre proprietà sono

  • Ordine garantito
  • Accesso casuale. Puoi accedere a qualsiasi elemento per indice in O (1)
  • Inserimento ed eliminazione lenti all'inizio e al centro.
  • Unsorted. (L'ordinamento dovrebbe prendere O (n log n) usando quicksort o simili)

Sì. [limite di lunghezza della risposta sciocca]

Quando aggiungi un elemento a una ArrayList, l'elemento rimarrà sempre in quell'indice. A meno che, ovviamente, se lo cambi.

(il framework potrebbe riorganizzare la memoria ma il tuo indice rimarrà sempre lo stesso)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top