Expressões C# LINQ Lambda

Expressoes C Linq Lambda



A expressão lambda em C# assume diretamente as expressões/instruções condicionais como seu corpo sem nome. Precisamos especificar os parâmetros e, em seguida, as expressões são atribuídas a ele. Ao trabalhar com Language Integrated Query (LINQ), você pode ter um requisito de transformar os dados que estão presentes na fonte de dados ou converter uma fonte de dados em outra fonte de dados. Neste guia, veremos como filtrar os registros da fonte de dados especificando a expressão lambda e selecionar os registros da fonte de dados.

Sintaxe:

  1. Expressão lambda: (parâmetros) => expressão
  2. Declaração Lambda: { declaração condicional1 declaração2 … }

Exemplo 1:

Crie a lista de “fertilizantes” que contém cinco strings. Utilize a expressão lambda que retorna todas as strings da lista.

usando Sistema ;
usando System.Linq ;
usando System.Collections.Generic ;

aula LambdaExpressionExample {

estático público vazio Principal ( )
{

// Cria lista de fertilizantes
Listar fertilizantes = novo Lista ( ) ;
fertilizantes . Adicionar ( 'ureia' ) ;
fertilizantes . Adicionar ( 'azoto' ) ;
fertilizantes . Adicionar ( 'potássio' ) ;
fertilizantes . Adicionar ( 'Fosfato de Di-Amônio' ) ;
fertilizantes . Adicionar ( 'fósforo' ) ;

// Use LambdaExpression para selecionar todos os fertilizantes
era resultado = fertilizantes . Selecione ( inp1 => inp1 ) ;
para cada ( era eu em resultado )
{
Console . WriteLine ( eu ) ;
}

}
}

Saída:









Explicação:



1. Crie uma lista do tipo string chamada “fertilizantes”. Adicione cinco strings a esta lista.

2. Use a expressão lambda para selecionar todos os fertilizantes. Aqui, a expressão é usada com o operador “Selecionar”. A expressão é inp1 => inp1. Em seguida, usamos o loop “foreach” para exibir as strings que são retornadas pela expressão lambda.





Exemplo 2:

Use a expressão lambda para selecionar os fertilizantes que incluem “Fosfato”.

usando Sistema ;
usando System.Linq ;
usando System.Collections.Generic ;

aula LambdaExpressionExample {

estático público vazio Principal ( )
{

// Cria lista de fertilizantes
Listar fertilizantes = novo Lista ( ) ;
fertilizantes . Adicionar ( 'ureia' ) ;
fertilizantes . Adicionar ( 'azoto' ) ;
fertilizantes . Adicionar ( 'orto - Fosfato' ) ;
fertilizantes . Adicionar ( 'Fosfato de Di-Amônio' ) ;
fertilizantes . Adicionar ( 'fósforo' ) ;

// Use LambdaExpression para selecionar os fertilizantes que incluem - 'Fosfato'
era resultado = fertilizantes . Onde ( inp1 => inp1 . contém ( 'Fosfato' ) ) ;
para cada ( era eu em resultado )
{
Console . WriteLine ( eu ) ;
}

}
}

Saída:



Existem duas cordas que incluem “Fosfato” nelas.

Explicação:

1. Crie uma lista do tipo string chamada “fertilizantes”. Adicione cinco strings a esta lista.

2. Aqui, a expressão é usada com o operador “Where”. A expressão é inp1 => inp1.Contains(“Fosfato”). Em seguida, usamos o loop “foreach” para exibir as strings que são retornadas pela expressão lambda.

Exemplo 3:

Vamos ter uma lista (order_quantity) que contém três pedidos. Especifique a expressão lambda para adicionar 5 a cada pedido.

usando Sistema ;
usando System.Linq ;
usando System.Collections.Generic ;

aula LambdaExpressionExample {

estático público vazio Principal ( )
{

// Cria lista de quantidades
Lista order_quantity = novo Lista ( ) ;
quantidade_pedido . Adicionar ( 5 ) ;
quantidade_pedido . Adicionar ( 7 ) ;
quantidade_pedido . Adicionar ( 8 ) ;

// Use LambdaExpression para 5 a cada pedido.
era resultado = quantidade_pedido . Selecione ( inp1 => inp1 + 5 ) ;
para cada ( era eu em resultado )
{
Console . WriteLine ( eu ) ;
}

}
}

Saída:

A lista [5,7,8] é transformada em [10,12,13].

Explicação:

1. Crie a lista de quantidades do tipo inteiro.

2. Selecionamos primeiro os pedidos e depois adicionamos 5 a cada pedido. Portanto, o operador “Selecionar” é usado. A expressão é inp1 => inp1 + 5.

Exemplo 4:

Crie uma fonte de dados de lista do tipo Evento (com três atributos – Event_Name, Event_Status e Event_Budget) e retorne os registros com o Event_Budget maior que 5000.

usando Sistema ;
usando System.Linq ;
usando System.Collections.Generic ;

// Cria uma classe chamada - 'Event_Source' com 5 eventos.
público aula Event_Source
{
público estático vazio Principal ( )
{
// Lista de evento
IList eventos = novo Lista ( ) {
novo Evento ( ) { Nome do evento = 'Acampamento Técnico' ,Event_Status = 'Planejado' ,Event_Budget = 10000 } ,
novo Evento ( ) { Nome do evento = 'Acampamento de Marketing' ,Event_Status = 'Concluído' ,Event_Budget = 5000 } ,
novo Evento ( ) { Nome do evento = 'Outro' ,Event_Status = 'Planejado' ,Event_Budget = 1000 } ,
novo Evento ( ) { Nome do evento = 'Política' ,Event_Status = 'Planejado' ,Event_Budget = 13000 } ,
novo Evento ( ) { Nome do evento = 'Finança' ,Event_Status = 'Concluído' ,Event_Budget = 20000 } ,
} ;

//Event_Budget maior que 5000.
era resultado = eventos . Onde ( inp1 => inp1 . Orçamento_Evento > 5000 ) ;
para cada ( era eu em resultado ) {
Console . WriteLine ( 'NOME: ' + eu . Nome do evento + ' STATUS: ' + eu . Event_Status + ' ORÇAMENTO: ' + eu . Orçamento_Evento ) ;
}
}
}

público aula Evento {
público corda Nome do evento { pegar ; definir ; }
público corda Event_Status { pegar ; definir ; }
público int Orçamento_Evento { pegar ; definir ; }
}

Saída:

Existem três registros na lista “eventos” com Event_Budget maior que 5000.

Explicação:

1. Primeiro, criamos uma classe “Evento” com três atributos.

2. Em seguida, criamos uma lista de cinco eventos.

3. Usando o inp1 => inp1.Event_Budget > 5000 lambda expression, selecionamos os registros com Event_Budget maior que 5000.

Exemplo 5:

Utilize o código anterior e altere a expressão lambda. Retorne os eventos com o Event_Name que termine com “Camp” e com o Event_Status que seja “Planned”.

//Lambda Expression - Event_Name termina com 'Camp' e Event_Status é 'Planned'.
era resultado = eventos . Onde ( inp1 => inp1 . Nome do evento . Termina com ( 'Acampamento' ) && inp1 . Event_Status == 'Planejado' ) ;
para cada ( era eu em resultado ) {
Console . WriteLine ( 'NOME: ' + eu . Nome do evento + ' STATUS: ' + eu . Event_Status + ' ORÇAMENTO: ' + eu . Orçamento_Evento ) ;
}

Saída:

Há apenas um registro que satisfaz ambas as condições.

Explicação:

Aqui, especificamos duas condições na expressão lambda. O operador && (e) é usado para tornar as duas condições verdadeiras. A primeira condição usa o método EndsWith() para verificar se uma string termina com a string especificada. A segunda condição usa o operador “Comparação” (==) para verificar se ambos os valores são iguais ou não.

Conclusão

Em C#, a expressão lambda leva as expressões/declarações condicionais como seu corpo sem um nome. Precisamos especificar os parâmetros. Em seguida, as expressões são atribuídas a ele. Basicamente, eles são usados ​​para filtrar os registros da fonte de dados fornecida, transformar os elementos e selecionar os elementos da fonte/sequência de dados. Neste guia, discutimos os cinco exemplos diferentes que selecionam, filtram e transformam os elementos usando a expressão lambda.