И, что еще лучше, по возможности используйте общие списки . Так как они вышли в 2.0, я не думаю, что когда-либо использовал простой ArrayList.
List<string> myNames = new List<string>();
myNames.Add("kevin");
string[] myNamesTurnedToStringArray = nyMames.ToArray();
Идя дальше, я обнаружил, что почти каждый раз, когда мне нужна коллекция, она нужна мне для нескольких простых заявлений. Если вы обнаружите, что попали в список по всей своей кодовой базе, вы можете рассмотреть вопрос о создании подкласса списка
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();
Это хороший ООП-способ инкапсулирования вашей функциональности списка в одном месте, и часто это отличный способ органично разделить ваши проблемы.