Und noch besser, wenn möglich allgemeine Listen verwenden . Seit sie in 2.0 herauskamen, glaube ich nicht, dass ich jemals eine einfache ArrayList verwendet habe.
List<string> myNames = new List<string>();
myNames.Add("kevin");
string[] myNamesTurnedToStringArray = nyMames.ToArray();
Ich gehe noch einen Schritt weiter und stelle fest, dass ich fast jedes Mal, wenn ich eine Sammlung brauche, diese für mehr als nur ein paar einfache Aussagen benötige. Wenn Sie feststellen, dass Sie Ihre Liste überall in Ihrer Codebasis verwenden, könnten Sie die Unterklassifizierung der Liste in Betracht ziehen
public class Widgets : List<Widgets> // Widgest class defined elsewhere
{
public Widgets() : base() {}
public Widgets(IEnumerable<Widgets> items) : base(items) {}
public Widget GetWidgetById(int id)
{
// assuming only one ID possible
return this.Where(w => w.id == id).Single();
}
public string[] GetAllNames()
{
return this.Select(w => w.Name).ToArray();
}
}
//... later in some other class ....
Widgets w = new Widgets(dataFromDatabase);
Widget customerWidget = w.GetWidgetById(customerWidgetId);
string[] allNames = w.GetAllNames();
Dies ist eine schöne OOPy Weg der Kapselung Ihrer Liste Funktionalität an einem Ort & oft ist ein guter Weg, um Ihre Anliegen organisch zu trennen.