Espressioni Lambda C# LINQ

Espressioni Lambda C Linq



L'espressione lambda in C# accetta direttamente le espressioni/istruzioni condizionali come corpo senza nome. Dobbiamo specificare i parametri e quindi le espressioni vengono assegnate ad esso. Durante l'utilizzo di Language Integrated Query (LINQ), potrebbe essere necessario trasformare i dati presenti nell'origine dati o convertire un'origine dati in un'altra origine dati. In questa guida vedremo come filtrare i record dall'origine dati specificando l'espressione lambda e selezionare i record dall'origine dati.

Sintassi:

  1. Espressione lambda: (parametri) => espressione
  2. Dichiarazione lambda: { istruzione condizionale1 istruzione2 … }

Esempio 1:

Crea l'elenco 'fertilizzanti' che contiene cinque stringhe. Utilizza l'espressione lambda che restituisce tutte le stringhe dall'elenco.

utilizzando Sistema ;
utilizzando System.Linq ;
utilizzando System.Collections.Generic ;

classe LambdaExpressionEsempio {

statico pubblico vuoto Principale ( )
{

// Crea un elenco di fertilizzanti
Elenca i fertilizzanti = nuovo Elenco ( ) ;
fertilizzanti . Aggiungere ( 'Urea' ) ;
fertilizzanti . Aggiungere ( 'azoto' ) ;
fertilizzanti . Aggiungere ( 'potassio' ) ;
fertilizzanti . Aggiungere ( 'Fosfato diammonico' ) ;
fertilizzanti . Aggiungere ( 'fosforo' ) ;

// Usa LambdaExpression per selezionare tutti i fertilizzanti
era risultato = fertilizzanti . Selezionare ( inp1 => inp1 ) ;
per ciascuno ( era io In risultato )
{
Consolle . Linea di scrittura ( io ) ;
}

}
}

Produzione:









Spiegazione:



1. Crea un elenco di tipi di stringa denominati 'fertilizzanti'. Aggiungi cinque stringhe a questo elenco.

2. Utilizzare l'espressione lambda per selezionare tutti i fertilizzanti. Qui, l'espressione viene utilizzata con l'operatore 'Seleziona'. L'espressione è inp1 => inp1. Quindi, utilizziamo il ciclo 'foreach' per visualizzare le stringhe restituite dall'espressione lambda.





Esempio 2:

Utilizzare l'espressione lambda per selezionare i fertilizzanti che includono 'Fosfato'.

utilizzando Sistema ;
utilizzando System.Linq ;
utilizzando System.Collections.Generic ;

classe LambdaExpressionEsempio {

statico pubblico vuoto Principale ( )
{

// Crea un elenco di fertilizzanti
Elenca i fertilizzanti = nuovo Elenco ( ) ;
fertilizzanti . Aggiungere ( 'Urea' ) ;
fertilizzanti . Aggiungere ( 'azoto' ) ;
fertilizzanti . Aggiungere ( 'orto - Fosfato' ) ;
fertilizzanti . Aggiungere ( 'Fosfato diammonico' ) ;
fertilizzanti . Aggiungere ( 'fosforo' ) ;

// Utilizza LambdaExpression per selezionare i  fertilizzanti che includono - 'Fosfato'
era risultato = fertilizzanti . Dove ( inp1 => inp1 . Contiene ( 'Fosfato' ) ) ;
per ciascuno ( era io In risultato )
{
Consolle . Linea di scrittura ( io ) ;
}

}
}

Produzione:



Ci sono due stringhe che includono 'Phosphate'.

Spiegazione:

1. Crea un elenco di tipi di stringa denominati 'fertilizzanti'. Aggiungi cinque stringhe a questo elenco.

2. Qui, l'espressione viene utilizzata con l'operatore 'Where'. L'espressione è inp1 => inp1.Contains(“Fosfato”). Quindi, utilizziamo il ciclo 'foreach' per visualizzare le stringhe restituite dall'espressione lambda.

Esempio 3:

Prendiamo una lista (order_quantity) che contiene tre ordini. Specifica l'espressione lambda per aggiungere 5 a ciascun ordine.

utilizzando Sistema ;
utilizzando System.Linq ;
utilizzando System.Collections.Generic ;

classe LambdaExpressionEsempio {

statico pubblico vuoto Principale ( )
{

// Crea un elenco di quantità
Elenca order_quantity = nuovo Elenco ( ) ;
ordine_quantità . Aggiungere ( 5 ) ;
ordine_quantità . Aggiungere ( 7 ) ;
ordine_quantità . Aggiungere ( 8 ) ;

// Usa LambdaExpression a 5 per ogni ordine.
era risultato = ordine_quantità . Selezionare ( inp1 => inp1 + 5 ) ;
per ciascuno ( era io In risultato )
{
Consolle . Linea di scrittura ( io ) ;
}

}
}

Produzione:

La lista [5,7,8] viene trasformata in [10,12,13].

Spiegazione:

1. Creare l'elenco delle quantità di tipo Integer.

2. Selezioniamo prima gli ordini e poi ne aggiungiamo 5 a ciascun ordine. Quindi, viene utilizzato l'operatore 'Seleziona'. L'espressione è inp1 => inp1 + 5.

Esempio 4:

Crea un'origine dati elenco di tipo Evento (con tre attributi: Event_Name, Event_Status e Event_Budget) e restituisci i record con Event_Budget maggiore di 5000.

utilizzando Sistema ;
utilizzando System.Linq ;
utilizzando System.Collections.Generic ;

// Crea una classe denominata - 'Event_Source' con 5 eventi.
pubblico classe Origine_evento
{
pubblico statico vuoto Principale ( )
{
// Elenco eventi
IList eventi = nuovo Elenco ( ) {
nuovo Evento ( ) { Nome dell'evento = 'Campo tecnico' ,Event_Status = 'Pianificato' ,Event_Budget = 10000 } ,
nuovo Evento ( ) { Nome dell'evento = 'Campo di marketing' ,Event_Status = 'Completato' ,Event_Budget = 5000 } ,
nuovo Evento ( ) { Nome dell'evento = 'Altro' ,Event_Status = 'Pianificato' ,Event_Budget = 1000 } ,
nuovo Evento ( ) { Nome dell'evento = 'Politica' ,Event_Status = 'Pianificato' ,Event_Budget = 13000 } ,
nuovo Evento ( ) { Nome dell'evento = 'Finanza' ,Event_Status = 'Completato' ,Event_Budget = 20000 } ,
} ;

//Event_Budget maggiore di 5000.
era risultato = eventi . Dove ( inp1 => inp1 . Evento_Budget > 5000 ) ;
per ciascuno ( era io In risultato ) {
Consolle . Linea di scrittura ( 'NOME: ' + io . Nome dell'evento + ' STATO: ' + io . Stato_evento + ' BILANCIO: ' + io . Evento_Budget ) ;
}
}
}

pubblico classe Evento {
pubblico corda Nome dell'evento { Ottenere ; impostato ; }
pubblico corda Stato_evento { Ottenere ; impostato ; }
pubblico int Evento_Budget { Ottenere ; impostato ; }
}

Produzione:

Sono presenti tre record nell'elenco 'eventi' con Event_Budget maggiore di 5000.

Spiegazione:

1. Innanzitutto, creiamo una classe 'Event' con tre attributi.

2. Quindi, creiamo un elenco di cinque eventi.

3. Utilizzando il inp1 => inp1.Event_Budget > 5000 espressione lambda, selezioniamo i record con Event_Budget maggiore di 5000.

Esempio 5:

Utilizza il codice precedente e modifica l'espressione lambda. Restituisce gli eventi con Event_Name che termina con 'Camp' e con Event_Status che è 'Pianificato'.

//Espressione Lambda - Event_Name termina con 'Camp' e Event_Status è 'Pianificato'.
era risultato = eventi . Dove ( inp1 => inp1 . Nome dell'evento . Finisce con ( 'Campo' ) && inp1 . Stato_evento == 'Pianificato' ) ;
per ciascuno ( era io In risultato ) {
Consolle . Linea di scrittura ( 'NOME: ' + io . Nome dell'evento + ' STATO: ' + io . Stato_evento + ' BILANCIO: ' + io . Evento_Budget ) ;
}

Produzione:

C'è solo un record che soddisfa entrambe le condizioni.

Spiegazione:

Qui, specifichiamo due condizioni nell'espressione lambda. L'operatore && (e) viene utilizzato per rendere True le due condizioni. La prima condizione utilizza il metodo EndsWith() per verificare se una stringa termina con la stringa data. La seconda condizione utilizza l'operatore 'Confronto' (==) per verificare se entrambi i valori sono uguali o meno.

Conclusione

In C#, l'espressione lambda accetta le espressioni/istruzioni condizionali come corpo senza nome. Dobbiamo specificare i parametri. Quindi, le espressioni vengono assegnate ad esso. Fondamentalmente, questi vengono utilizzati per filtrare i record dall'origine dati data, trasformare gli elementi e selezionare gli elementi dall'origine dati/sequenza. In questa guida, abbiamo discusso i cinque diversi esempi che selezionano, filtrano e trasformano gli elementi utilizzando l'espressione lambda.