Siempre he pensado que era una "mejor práctica" ser explícito al nombrar las variables de mi colección. Por lo tanto, si tuviera una colección de objetos Car, normalmente nombraría un Car[]
carArray
y un List<Car>
carList
.¿Me pasarán cosas malas si nombro mis matrices, colecciones, listas, enumerables, etc. solo el plural de lo que contienen?
Y entonces el 99% del tiempo, terminan simplemente haciendo algo como ...
foreach (Car car in carArray)
{
...
}
... y estoy pensando, Me podría haber llamado la matriz cars
, y wouldn No ha hecho ninguna diferencia.
Y ahora que tenemos IEnumberable<T>
, de hecho me pregunto si podría considerar escribir algo como carIEnumerable
? o carEnumerable
. Hasta ahora, la respuesta ha sido "no".
Mi pensamiento aquí es que el tipo de colección a menudo no importa, y cuando lo hace, sigue sin importar si el tipo de colección está escrito en el nombre de la variable. Acabo de tener un caso en el que tuve que cambiar de IEnumerable<Car>
a List<Car>
porque necesitaba "acceso de corchete" a los artículos (por ejemplo, carList[3]
). En ese caso, los dos tipos de colección no se comportan igual, pero ¿nombrar la variable cars
ha sido un problema aquí?
Para no agregar otra capa de complejidad a esta pregunta, ¿qué ocurre si uso var
? Por ejemplo,
var cars = GetCars();
ciertamente puedo decirle cars
es una especie de colección. Puedo iterarlo. Si estoy usando LINQ, puedo usar métodos de extensión. Más importante aún, si más tarde cambio el tipo de colección, habría mucho menos código con el que meterme. var
seguiría siendo var
y cars
seguiría siendo cars
. Eso me parece muy atractivo, y tengo problemas para ver muchas desventajas.
Entonces, solo para asegurarme de que mi pregunta es clara: ¿cómo se nombran las variables de recolección y por qué? ¿Existe una legibilidad seria o un costo de claridad para simplemente "pluralizar" el nombre del artículo?
Variables de denominación "carArray" solo está utilizando la notación húngara. Por lo general, está mal visto como una mala práctica en C# aparte de los controles de la interfaz de usuario. – RichardOD
¡No lo hagas! ¡El mundo terminará si lo nombraste autos en lugar de carArray! – Powerlord
Recuerde que puede acceder a los elementos por número usando ElementAt() en List et al. (No sé por qué los paréntesis no están disponibles para IEnumereables, pero probablemente haya una buena razón.) –