Specifica del tipo di elementi di ArrayList
Domanda
Ho pensato che in .net 3.0 esistesse un modo per dare un tipo a un elenco di array in modo che non restituisse solo Object ma ho problemi a farlo. È possibile? In tal caso, come?
Soluzione
List<T>
è stato introdotto con generics in .NET 2.0:
using System.Collections.Generic;
var list = new List<int>();
list.Add(1);
list.Add("string"); //compile-time error!
int i = list[0];
Altri suggerimenti
Probabilmente stai cercando List <T>
, disponibile da .NET 2.0 o per qualsiasi altro tipo generico disponibile da System.Collections.Generic o System.Collections.ComponentModel.
Se devi usare ArrayList e non puoi iniziare a usare List, e conosci il tipo di ogni elemento in quell'ArrayList, puoi farlo:
string[] stringArray = myArrayList.ToArray(typeof(string)) as string[];
Se qualcosa in myArrayList non fosse una stringa, in questo caso, otterresti un InvalidCastException.
Se puoi, inizierei a usare List come citato da OregonGhost.