practices net guidelines documentacion convenciones coding codigos codigo code classes best basicos linq naming-conventions

linq - net - convenciones de codigo c#



¿Por qué el método LINQ "aplicar para todos" se llama Seleccionar? (3)

Una de las principales razones por las que Select viene último es hacer que Intellisense funcione. Al poner en primer lugar la fuente de la secuencia (de la declaración), Intellisense puede funcionar correctamente.

Cuando leo el código que usa Select , creo que "select-all-where". Cuando leo un código que usa el Map , pienso "esto a eso" o "aplicar para todos". No puedo ser la única persona que siente el nombre Select es confuso.

Mapa


Es realmente idéntico al mapa de los lenguajes funcionales. La razón por la que se llama Select es que está diseñado para ser utilizado como parte de LINQ que usa palabras clave similares a SQL.

from item in collection where item.Value == someValue select item.Name

se traduce a:

collection.Where(item => item.Value == someValue) .Select(item => item.Name)

sería un poco inconsistente si Select se llamara Map ; algo como:

collection.Filter(item => item.Value == someValue) .Map(item => item.Name)

De hecho, muchas personas usan LINQ sin haber oído hablar de programación funcional en absoluto. Para ellos, LINQ es un método para recuperar objetos de datos y consultarlos fácilmente (como las consultas SQL). Para ellos, Select y Where tienen perfecto sentido. Mucho más que Map and Filter .


Al principio, Select pareció un poco confuso también, pero solo era cuestión de tiempo. Mehrdad te dice una buena razón para Select . Aparte de eso, creo que Select transmite el aspecto de inmutabilidad de Linq mucho mejor. No es que Map signifique que está mutando la estructura original, pero Select dice mucho más claro. Le dice que no está tocando la lista original, sino que simplemente selecciona de ella para formar otra lista.

Va con otros nombres y también con Where . Cuando llamas a collection.Filter te da una idea de que estás filtrando en esa colección en particular, o al menos la primera vez. Al final, todo es cuestión de familiarizarse. Aunque al principio estaba tan molesto por las nomenclaturas de Linq , ahora siento que el equipo de MS lo ha logrado de la manera más correcta.