Como executar junções externas esquerdas - Linq em C#

Como executar junções externas esquerdas - Linq em C#

Para exibir registros correspondentes da tabela esquerda e da tabela direita no SQL, a junção externa esquerda é um tipo de operação de junção que é usada. No LINQ, a junção externa esquerda pode ser realizada usando os métodos GroupJoin () e SelectMany (), este artigo discutirá extensivamente a execução de junções externas esquerdas no LINQ usando C#.

Como executar junções externas esquerdas no LINQ usando C#

Para executar uma junção externa esquerda no LINQ, você pode usar o método GroupJoin () para ingressar em duas sequências com base em uma chave comum e depois usar o método selectMany () para achatar o resultado, aqui está um exemplo:

usando o sistema;
usando o sistema.Linq;
programa de classe

estático void main ()

var esquerdo = novo [] 1, 2, 3;
var à direita = novo [] 2, 3, 4;
var resultado = esquerda.GrupoJoin (
certo,
l => l,
r => r,
(l, r) => novo esquerda = l, direita = r.DefaultIfempy ())
.SelectMany (
LR => LR.Certo.Selecionar (
r => novo esquerda = lr.Esquerda, direita = r));
foreach (item var no resultado)

Console.WriteLine ("0 1", item.Esquerda, item.Certo);


Este código executa uma junção externa esquerda em duas matrizes à esquerda e à direita e imprime o resultado no console. O método GroupJoin () executa a junção e o SelectMany () o método é usado para achatar o resultado. Finalmente, o resultado é impresso no console usando uma função foreach loop e writeLine ():

Aqui está um outro exemplo que demonstra o uso da execução de junções de fora, exibindo os respectivos nomes dos funcionários e seus departamentos relevantes. Cada funcionário é que cada departamento recebeu um número que é usado para corresponder ao departamento relevante com o respectivo funcionário, aqui está o código completo para ele:

usando o sistema;
usando o sistema.Coleções.Genérico;
usando o sistema.Linq;
namespace yournamespace

programa de classe

estático void main (string [] args)

Lista funcionários = nova lista

novo Name Employeeename Id = 1, Name = "Sam", departamentId = 1,
Novo Nome do Emprego Id = 2, Name = "Jhon", departamentId = 2,
novo Name Employeeename id = 3, Name = "Kevin", DepartmentId = 2,
novo Name Employeeename Id = 4, Name = "Bob", departamentId = 3
;
Lista departamentos = nova lista

Novo departamento id = 1, name = "Content Writing",
Novo departamento id = 2, name = "marketing",
Novo departamento id = 3, name = "Engineering"
;
VAR consulta = do Nome do EmployeEne em funcionários
Junte -se ao Departamento de Departamentos
no nome do Employeen.Departamento de departamento é igual ao Departamento.Id em um grupo de departamento
do departamento em grupo de departamento.DefaultIfempy ()
Selecione novo EmployeenameName = Employeename.Nome, departamentoname = Departamento?.Nome ?? "Nenhum" ;
foreach (Var resultam em consulta)

Console.WriteLine ($ "Employeename: Resultado.EmployeenameName, departamento: resultado.Nome do departamento");



Classe Employeename

public int id get; definir;
Nome da String Public get; definir;
public int DepartmentId get; definir;

Departamento de classe

public int id get; definir;
Nome da String Public get; definir;

Primeiro, é fornecido dados de amostra que contêm o nome do funcionário e o nome dos departamentos e depois um número respectivo é dado a cada. Em seguida, a operação de junção é realizada usando o comando JONC e depois o resultado é salvo em uma variável chamada consulta, a seguir o loop for usado para imprimir os nomes e departamentos dos respectivos funcionários e a saída do código será assim :

Conclusão

A junção externa esquerda é uma operação comum no SQL e também pode ser executado facilmente usando LINQ em C#. Usando os métodos GroupJoin () e SelectMany (), você pode executar junções externas esquerdas em duas sequências com base em uma chave comum. Embora a sintaxe para executar junções externas esquerdas no LINQ possa ser difícil de entender para iniciantes, é uma linguagem poderosa e flexível que permite que consultas complexas sejam executadas facilmente.