una selectmany seleccionar many lista example elementos .net sql linq linq-to-sql .net-3.5

.net - seleccionar - LinqToSQL Select y SelectMany vs Join



seleccionar elementos de una lista c# (1)

¿Son los preferidos y los selectos preferidos para unirse?

La razón por la que me pregunto es porque utilizo LinqPad y en una sección hay comentarios que dicen:

// Note: before delving into this section, make sure you''ve read the preceding two // sections: Select and SelectMany. The Join operators are actually unnecessary // in LINQ to SQL, and the equivalent of SQL inner and outer joins is most easily // achieved in LINQ to SQL using Select/SelectMany and subqueries!

Sin embargo, en otras secciones muestra claramente que las uniones son más rápidas (al menos para los ejemplos dados en LinqPad) y para mí son más fáciles de visualizar en mi cabeza.

Tal vez estoy malinterpretando, ya que solo estoy mirando las muestras del código y no el libro, pero he visto a otras personas recomendar Seleccionar y Seleccionar muchas más de las uniones también.


El Wayward Weblog tenía esto que decir con respecto al asunto. Unirse utiliza un conjunto explícito de parámetros para unirse a una clave específica y permite combinaciones externas izquierda y derecha. SelectMany realiza un enlace monádico que generalmente da como resultado una unión interna o una unión cruzada. Como LINQ es esencialmente una implementación de programación funcional en .NET, SelectMany es la expresión más natural; sin embargo, la configuración explícita de la unión probablemente resulte en acciones más rápidas.

En cuanto a preferido, creo que lo que sea que lea con mayor claridad es lo mejor para ti. La versión de C # de 101 muestras de LINQ no incluye unir, pero la lista de VB muestra Unir y seleccionarMuchas veces utilizadas en diferentes escenarios.