C# LINQ Lambda-uttryck

C Linq Lambda Uttryck



Lambda-uttryck i C# tar direkt uttrycken/villkorssatserna som sin kropp utan namn. Vi måste specificera parametrarna och sedan tilldelas uttrycken till den. När du arbetar med Language Integrated Query (LINQ) kan du ha ett krav på att du behöver omvandla data som finns i datakällan eller konvertera en datakälla till en annan datakälla. I den här guiden kommer vi att se hur du filtrerar posterna från datakällan genom att ange lambda-uttrycket och välja posterna från datakällan.

Syntax:

  1. Lambdauttryck: (parametrar) => uttryck
  2. Lambda uttalande: { villkorligt uttalande1 uttalande2 … }

Exempel 1:

Skapa listan 'gödselmedel' som innehåller fem strängar. Använd lambda-uttrycket som returnerar alla strängar från listan.

använder sig av Systemet ;
använder sig av System.Linq ;
använder sig av System.Collectioner.Generisk ;

klass LambdaExpressionExempel {

statisk offentlig tomhet Main ( )
{

// Skapa lista över gödselmedel
Lista gödselmedel = ny Lista ( ) ;
gödningsmedel . Lägg till ( 'urea' ) ;
gödningsmedel . Lägg till ( 'kväve' ) ;
gödningsmedel . Lägg till ( 'kalium' ) ;
gödningsmedel . Lägg till ( 'Diammoniumfosfat' ) ;
gödningsmedel . Lägg till ( 'fosfor' ) ;

// Använd LambdaExpression för att välja alla gödselmedel
var resultat = gödningsmedel . Välj ( inp1 => inp1 ) ;
för varje ( var i i resultat )
{
Trösta . Skrivlinje ( i ) ;
}

}
}

Produktion:









Förklaring:



1. Skapa en lista med strängtyp med namnet 'gödselmedel'. Lägg till fem strängar till den här listan.

2. Använd lambdauttrycket för att välja alla gödselmedel. Här används uttrycket med operatorn 'Select'. Uttrycket är inp1 => inp1. Sedan använder vi 'foreach'-loopen för att visa strängarna som returneras av lambda-uttrycket.





Exempel 2:

Använd lambda-uttrycket för att välja gödselmedel som innehåller 'fosfat'.

använder sig av Systemet ;
använder sig av System.Linq ;
använder sig av System.Collectioner.Generisk ;

klass LambdaExpressionExempel {

statisk offentlig tomhet Main ( )
{

// Skapa lista över gödselmedel
Lista gödselmedel = ny Lista ( ) ;
gödningsmedel . Lägg till ( 'urea' ) ;
gödningsmedel . Lägg till ( 'kväve' ) ;
gödningsmedel . Lägg till ( 'orto - fosfat' ) ;
gödningsmedel . Lägg till ( 'Diammoniumfosfat' ) ;
gödningsmedel . Lägg till ( 'fosfor' ) ;

// Använd LambdaExpression för att välja de  gödselmedel som inkluderar - 'fosfat'
var resultat = gödningsmedel . Var ( inp1 => inp1 . Innehåller ( 'Fosfat' ) ) ;
för varje ( var i i resultat )
{
Trösta . Skrivlinje ( i ) ;
}

}
}

Produktion:



Det finns två strängar som innehåller 'fosfat' i dem.

Förklaring:

1. Skapa en lista med strängtyper med namnet 'gödselmedel'. Lägg till fem strängar till den här listan.

2. Här används uttrycket med operatorn “Where”. Uttrycket är inp1 => inp1.Contains(“Fosfat”). Sedan använder vi 'foreach'-loopen för att visa strängarna som returneras av lambda-uttrycket.

Exempel 3:

Låt oss ha en lista (order_kvantitet) som innehåller tre beställningar. Ange lambda-uttrycket för att lägga till 5 till varje beställning.

använder sig av Systemet ;
använder sig av System.Linq ;
använder sig av System.Collectioner.Generisk ;

klass LambdaExpressionExempel {

statisk offentlig tomhet Main ( )
{

// Skapa en lista över kvantiteter
Lista order_quantity = ny Lista ( ) ;
Order kvantitet . Lägg till ( 5 ) ;
Order kvantitet . Lägg till ( 7 ) ;
Order kvantitet . Lägg till ( 8 ) ;

// Använd LambdaExpression till 5 för varje beställning.
var resultat = Order kvantitet . Välj ( inp1 => inp1 + 5 ) ;
för varje ( var i i resultat )
{
Trösta . Skrivlinje ( i ) ;
}

}
}

Produktion:

[5,7,8]-listan omvandlas till [10,12,13].

Förklaring:

1. Skapa listan över kvantiteter av heltalstyp.

2. Vi väljer först beställningarna och lägger sedan till 5 till varje beställning. Så, operatorn 'Välj' används. Uttrycket är inp1 => inp1 + 5.

Exempel 4:

Skapa en listdatakälla av händelsetyp (med tre attribut – Event_Name, Event_Status och Event_Budget) och returnera posterna med Event_Budget som är större än 5000.

använder sig av Systemet ;
använder sig av System.Linq ;
använder sig av System.Collectioner.Generisk ;

// Skapa en klass som heter - 'Event_Source' med 5 händelser.
offentlig klass Event_Source
{
offentlig statisk tomhet Main ( )
{
// Händelselista
IList händelser = ny Lista ( ) {
ny Händelse ( ) { Event namn = 'Tekniskt läger' ,Händelsestatus = 'Planerad' ,Event_Budget = 10 000 } ,
ny Händelse ( ) { Event namn = 'Marknadsföringsläger' ,Händelsestatus = 'Avslutad' ,Event_Budget = 5 000 } ,
ny Händelse ( ) { Event namn = 'Övrig' ,Händelsestatus = 'Planerad' ,Event_Budget = 1000 } ,
ny Händelse ( ) { Event namn = 'Politik' ,Händelsestatus = 'Planerad' ,Event_Budget = 13 000 } ,
ny Händelse ( ) { Event namn = 'Finansiera' ,Händelsestatus = 'Avslutad' ,Event_Budget = 20 000 } ,
} ;

//Event_Budget större än 5000.
var resultat = evenemang . Var ( inp1 => inp1 . Event_Budget > 5 000 ) ;
för varje ( var i i resultat ) {
Trösta . Skrivlinje ( 'NAMN: ' + i . Event namn + ' STATUS: ' + i . Event_Status + ' BUDGET: ' + i . Event_Budget ) ;
}
}
}

offentlig klass Händelse {
offentlig sträng Event namn { skaffa sig ; uppsättning ; }
offentlig sträng Event_Status { skaffa sig ; uppsättning ; }
offentlig int Event_Budget { skaffa sig ; uppsättning ; }
}

Produktion:

Det finns tre poster i listan 'händelser' med Event_Budget större än 5000.

Förklaring:

1. Först skapar vi en 'Event'-klass med tre attribut.

2. Sedan skapar vi en lista med fem händelser.

3. Använda inp1 => inp1.Event_Budget > 5000 lambda-uttryck väljer vi poster med Event_Budget större än 5000.

Exempel 5:

Använd föregående kod och ändra lambda-uttrycket. Returnera händelserna med Event_Name som slutar med 'Camp' och med Event_Status som är 'Planerad'.

//Lambda-uttryck - Event_Name slutar med 'Camp' och Event_Status är 'Planned'.
var resultat = evenemang . Var ( inp1 => inp1 . Event namn . Slutar med ( 'Läger' ) && inp1 . Event_Status == 'Planerad' ) ;
för varje ( var i i resultat ) {
Trösta . Skrivlinje ( 'NAMN: ' + i . Event namn + ' STATUS: ' + i . Event_Status + ' BUDGET: ' + i . Event_Budget ) ;
}

Produktion:

Det finns bara ett rekord som uppfyller båda villkoren.

Förklaring:

Här specificerar vi två villkor i lambdauttrycket. Operatorn && (och) används för att göra de två villkoren som Sanna. Det första villkoret använder metoden EndsWith() för att kontrollera om en sträng slutar med den givna strängen. Det andra villkoret använder operatorn 'Comparison' (==) för att kontrollera om båda värdena är lika eller inte.

Slutsats

I C# tar lambda-uttrycket uttrycken/villkorssatserna som sin kropp utan namn. Vi måste specificera parametrarna. Sedan tilldelas uttrycken till den. I grund och botten används dessa för att filtrera posterna från den givna datakällan, transformera elementen och välja elementen från datakällan/sekvensen. I den här guiden diskuterade vi de fem olika exemplen som väljer, filtrerar och transformerar elementen med hjälp av lambda-uttrycket.