Я всегда думал, что это было "наилучшей практикой" - явно указывать в именах переменных моей коллекции. Итак, если бы у меня была коллекция объектов Car, я бы обычно назвал Car[]
carArray
и List<Car>
carList
.
А потом в 99% случаев я просто делаю что-то вроде ...
foreach (Car car in carArray)
{
...
}
... и я думаю, я мог бы просто назвать массив cars
, и это не имело бы никакого значения.
И теперь, когда у нас есть IEnumberable<T>
, я на самом деле сталкиваюсь с вопросом о том, могу ли я написать что-то вроде carIEnumerable
? или carEnumerable
. Пока что ответ был «нет».
Здесь я думаю, что тип коллекции часто не имеет значения, а когда это имеет значение, все равно не имеет значения, записан ли тип коллекции в имя переменной. У меня просто был случай, когда мне пришлось переключиться с IEnumerable<Car>
на List<Car>
, потому что мне нужен был «скобочный доступ» к предметам (например, carList[3]
). В этом случае два типа коллекций не ведут себя одинаково, но будет ли проблема с именованием переменной cars
здесь?
Чтобы не добавлять еще один уровень сложности к этому вопросу, что произойдет, если я использую var
? Например.,
var cars = GetCars();
Я, конечно, могу сказать, cars
- это какая-то коллекция. Я могу повторить это. Если я использую LINQ, я могу использовать методы расширения. Что еще более важно, если бы я позже изменил тип коллекции, было бы намного меньше кода, чтобы связываться с ним. var
будет по-прежнему var
, а cars
будет по-прежнему cars
. Мне это кажется очень привлекательным, и мне трудно увидеть много недостатков.
Итак, просто чтобы убедиться, что мой вопрос ясен: как вы называете переменные вашей коллекции и почему? Существуют ли серьезные трудности с читабельностью или ясностью для простого «множественного числа» названия предмета?