Operaciones de combinación (C#)Join Operations (C#)

Una combinación de dos orígenes de datos es la asociación de objetos de un origen de datos con los objetos que comparten un atributo común en otro origen de datos.A join of two data sources is the association of objects in one data source with objects that share a common attribute in another data source.

La combinación es una operación importante en las consultas destinadas a orígenes de datos cuyas relaciones entre sí no se puede seguir directamente.Joining is an important operation in queries that target data sources whose relationships to each other cannot be followed directly. En la programación orientada a objetos, esto podría significar una correlación entre objetos que no está modelada, como el sentido contrario de una relación unidireccional.In object-oriented programming, this could mean a correlation between objects that is not modeled, such as the backwards direction of a one-way relationship. Un ejemplo de una relación unidireccional es una clase Cliente que tiene una propiedad de tipo Ciudad, pero la clase Ciudad no tiene una propiedad que sea una colección de objetos Cliente.An example of a one-way relationship is a Customer class that has a property of type City, but the City class does not have a property that is a collection of Customer objects. Si tiene una lista de objetos Ciudad y quiere encontrar todos los clientes en cada ciudad, podría usar una operación de combinación para encontrarlos.If you have a list of City objects and you want to find all the customers in each city, you could use a join operation to find them.

Los métodos de combinación que se han proporcionado en el marco de LINQ son Join y GroupJoin.The join methods provided in the LINQ framework are Join and GroupJoin. Estos métodos efectúan combinaciones de igualdad, o combinaciones que hacen corresponder dos orígenes de datos en función de la igualdad de sus claves.These methods perform equijoins, or joins that match two data sources based on equality of their keys. (Para comparar, Transact-SQL admite otros operadores de combinación aparte de 'igual', por ejemplo, 'menor que'). En términos de base de datos relacional, Join implementa una combinación interna, un tipo de combinación en la que solo se devuelven los objetos que tienen una correspondencia en el otro conjunto de datos.(For comparison, Transact-SQL supports join operators other than 'equals', for example the 'less than' operator.) In relational database terms, Join implements an inner join, a type of join in which only those objects that have a match in the other data set are returned. El método GroupJoin no tiene equivalente directo en términos de bases de datos relacionales; pero implementa un superconjunto de combinaciones internas y combinaciones externas izquierdas.The GroupJoin method has no direct equivalent in relational database terms, but it implements a superset of inner joins and left outer joins. Una combinación externa izquierda es una combinación que devuelve cada elemento del primer origen de datos (izquierda), aunque no tenga elementos correlacionados en el otro origen de datos.A left outer join is a join that returns each element of the first (left) data source, even if it has no correlated elements in the other data source.

En la ilustración siguiente se muestra una vista conceptual de dos conjuntos y los elementos de esos conjuntos que se incluyen en una combinación interna o en una combinación externa izquierda.The following illustration shows a conceptual view of two sets and the elements within those sets that are included in either an inner join or a left outer join.

Dos círculos superpuestos en los que se muestra el interior y el exterior.

MétodosMethods

Nombre del métodoMethod Name DescripciónDescription Sintaxis de la expresión de consulta de C#C# Query Expression Syntax Más informaciónMore Information
JoinJoin Combina dos secuencias según las funciones de selector de claves y extrae pares de valores.Joins two sequences based on key selector functions and extracts pairs of values. join … in … on … equals … Enumerable.Join

Queryable.Join
GroupJoinGroupJoin Combina dos secuencias según las funciones de selector de claves y agrupa los resultados coincidentes para cada elemento.Joins two sequences based on key selector functions and groups the resulting matches for each element. join … in … on … equals … into … Enumerable.GroupJoin

Queryable.GroupJoin

Vea tambiénSee also