Я всегда считал, что это была "лучшая практика", чтобы быть явным в том, чтобы называть мои переменные коллекции. Итак, если бы у меня была коллекция объектов 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
. Это кажется мне очень привлекательным, и у меня проблемы с большим недостатком.
Итак, чтобы убедиться, что мой вопрос ясен: как вы называете переменные коллекции и почему? Есть ли серьезная читаемость или ясность стоимости просто "плюрализации" имени элемента?