C# LINQ Lambda-expressies

C Linq Lambda Expressies



Lambda-expressie in C# neemt de expressies/voorwaardelijke uitspraken direct als body zonder naam. We moeten de parameters specificeren en vervolgens worden de uitdrukkingen eraan toegewezen. Tijdens het werken met Language Integrated Query (LINQ) kan het zijn dat u de gegevens in de gegevensbron moet transformeren of de ene gegevensbron naar een andere gegevensbron moet converteren. In deze handleiding zullen we zien hoe u de records uit de gegevensbron kunt filteren door de lambda-expressie op te geven en de records uit de gegevensbron te selecteren.

Syntaxis:

  1. Lambda-expressie: (parameters) => uitdrukking
  2. Lambda-verklaring: { voorwaardelijke verklaring1 verklaring2 … }

Voorbeeld 1:

Maak de lijst met 'meststoffen' die vijf strings bevat. Gebruik de lambda-expressie die alle strings uit de lijst retourneert.

gebruik makend van Systeem ;
gebruik makend van Systeem.Linq ;
gebruik makend van System.Collections.Generic ;

klas LambdaExpressieVoorbeeld {

statisch openbaar leegte Voornaamst ( )
{

// Maak een lijst met meststoffen
Maak een lijst van meststoffen = nieuw Lijst ( ) ;
meststoffen . Toevoegen ( 'Ureum' ) ;
meststoffen . Toevoegen ( 'stikstof' ) ;
meststoffen . Toevoegen ( 'potassium' ) ;
meststoffen . Toevoegen ( 'Di-ammoniumfosfaat' ) ;
meststoffen . Toevoegen ( 'fosfor' ) ;

// Gebruik LambdaExpression om alle meststoffen te selecteren
was resultaat = meststoffen . Selecteer ( inp1 => inp1 ) ;
voor elk ( was i in resultaat )
{
Troosten . Schrijf lijn ( i ) ;
}

}
}

Uitgang:









Uitleg:



1. Maak een lijst met tekenreeksen met de naam 'meststoffen'. Voeg vijf strings toe aan deze lijst.

2. Gebruik de lambda-uitdrukking om alle meststoffen te selecteren. Hier wordt de uitdrukking gebruikt met de operator 'Selecteren'. De uitdrukking is inp1 => inp1. Vervolgens gebruiken we de 'foreach'-lus om de strings weer te geven die worden geretourneerd door de lambda-expressie.





Voorbeeld 2:

Gebruik de lambda-uitdrukking om de meststoffen te selecteren die 'Fosfaat' bevatten.

gebruik makend van Systeem ;
gebruik makend van Systeem.Linq ;
gebruik makend van System.Collections.Generic ;

klas LambdaExpressieVoorbeeld {

statisch openbaar leegte Voornaamst ( )
{

// Maak een lijst met meststoffen
Maak een lijst van meststoffen = nieuw Lijst ( ) ;
meststoffen . Toevoegen ( 'Ureum' ) ;
meststoffen . Toevoegen ( 'stikstof' ) ;
meststoffen . Toevoegen ( 'ortho - Fosfaat ' ) ;
meststoffen . Toevoegen ( 'Di-ammoniumfosfaat' ) ;
meststoffen . Toevoegen ( 'fosfor' ) ;

// Gebruik LambdaExpression om de meststoffen te selecteren die - 'Fosfaat' bevatten
was resultaat = meststoffen . Waar ( inp1 => inp1 . Bevat ( 'Fosfaat' ) ) ;
voor elk ( was i in resultaat )
{
Troosten . Schrijf lijn ( i ) ;
}

}
}

Uitgang:



Er zijn twee strings die 'Phosphate' bevatten.

Uitleg:

1. Maak een lijst met tekenreeksen met de naam 'meststoffen'. Voeg vijf strings toe aan deze lijst.

2. Hier wordt de uitdrukking gebruikt met de operator 'Waar'. De uitdrukking is inp1 => inp1. Bevat ('Fosfaat'). Vervolgens gebruiken we de 'foreach'-lus om de strings weer te geven die worden geretourneerd door de lambda-expressie.

Voorbeeld 3:

Laten we een lijst hebben (order_quantity) die drie bestellingen bevat. Geef de lambda-expressie op om 5 aan elke bestelling toe te voegen.

gebruik makend van Systeem ;
gebruik makend van Systeem.Linq ;
gebruik makend van System.Collections.Generic ;

klas LambdaExpressieVoorbeeld {

statisch openbaar leegte Voornaamst ( )
{

// Maak een lijst met hoeveelheden
Lijst order_quantity = nieuw Lijst ( ) ;
bestelhoeveelheid . Toevoegen ( 5 ) ;
bestelhoeveelheid . Toevoegen ( 7 ) ;
bestelhoeveelheid . Toevoegen ( 8 ) ;

// Gebruik LambdaExpression tot 5 voor elke bestelling.
was resultaat = bestelhoeveelheid . Selecteer ( inp1 => inp1 + 5 ) ;
voor elk ( was i in resultaat )
{
Troosten . Schrijf lijn ( i ) ;
}

}
}

Uitgang:

De lijst [5,7,8] wordt getransformeerd naar [10,12,13].

Uitleg:

1. Maak de lijst met hoeveelheden van het type Integer.

2. We selecteren eerst de bestellingen en voegen er vervolgens 5 toe aan elke bestelling. Dus wordt de operator 'Selecteren' gebruikt. De uitdrukking is inp1 => inp1 + 5.

Voorbeeld 4:

Maak een lijst met gegevensbron van het type Event (met drie kenmerken: Event_Name, Event_Status en Event_Budget) en retourneer de records met het Event_Budget dat groter is dan 5000.

gebruik makend van Systeem ;
gebruik makend van Systeem.Linq ;
gebruik makend van System.Collections.Generic ;

// Maak een klasse met de naam - 'Event_Source' met 5 evenementen.
openbaar klas Evenement_Bron
{
openbaar statisch leegte Voornaamst ( )
{
// Evenementenlijst
ILijst evenementen = nieuw Lijst ( ) {
nieuw Evenement ( ) { Evenement naam = 'Technisch kamp' ,Event_Status = 'Gepland' ,Event_Budget = 10000 } ,
nieuw Evenement ( ) { Evenement naam = 'Marketingkamp' ,Event_Status = 'Voltooid' ,Event_Budget = 5000 } ,
nieuw Evenement ( ) { Evenement naam = 'Ander' ,Event_Status = 'Gepland' ,Event_Budget = 1000 } ,
nieuw Evenement ( ) { Evenement naam = 'Politiek' ,Event_Status = 'Gepland' ,Event_Budget = 13000 } ,
nieuw Evenement ( ) { Evenement naam = 'Financiën' ,Event_Status = 'Voltooid' ,Event_Budget = 20000 } ,
} ;

//Event_Budget groter dan 5000.
was resultaat = evenementen . Waar ( inp1 => inp1 . Evenement_Budget > 5000 ) ;
voor elk ( was i in resultaat ) {
Troosten . Schrijf lijn ( 'NAAM: ' + i . Evenement naam + ' TOESTAND: ' + i . Event_Status + ' BEGROTING: ' + i . Evenement_Budget ) ;
}
}
}

openbaar klas Evenement {
openbaar snaar Evenement naam { krijgen ; set ; }
openbaar snaar Event_Status { krijgen ; set ; }
openbaar int Evenement_Budget { krijgen ; set ; }
}

Uitgang:

Er zijn drie records in de lijst 'gebeurtenissen' met een Event_Budget groter dan 5000.

Uitleg:

1. Eerst maken we een klasse 'Event' met drie attributen.

2. Vervolgens maken we een lijst met vijf gebeurtenissen.

3. Gebruik van de inp1 => inp1.Event_Budget > 5000 lambda-expressie, selecteren we de records met een Event_Budget groter dan 5000.

Voorbeeld 5:

Gebruik de vorige code en wijzig de lambda-expressie. Retourneert de gebeurtenissen met de Event_Name die eindigt op 'Camp' en met de Event_Status die 'Planned' is.

//Lambda-expressie - Event_Name eindigt met 'Camp' en Event_Status is 'Planned'.
was resultaat = evenementen . Waar ( inp1 => inp1 . Evenement naam . Eindigt met ( 'Kamp' ) && inp1 . Event_Status == 'Gepland' ) ;
voor elk ( was i in resultaat ) {
Troosten . Schrijf lijn ( 'NAAM: ' + i . Evenement naam + ' TOESTAND: ' + i . Event_Status + ' BEGROTING: ' + i . Evenement_Budget ) ;
}

Uitgang:

Er is slechts één record dat aan beide voorwaarden voldoet.

Uitleg:

Hier specificeren we twee voorwaarden in de lambda-expressie. De operator && (and) wordt gebruikt om de twee voorwaarden waar te maken. De eerste voorwaarde gebruikt de methode EndsWith() om te controleren of een tekenreeks eindigt met de opgegeven tekenreeks. De tweede voorwaarde gebruikt de operator 'Vergelijking' (==) om te controleren of beide waarden gelijk zijn of niet.

Conclusie

In C# neemt de lambda-expressie de expressies/voorwaardelijke instructies als body zonder naam. We moeten de parameters specificeren. Vervolgens worden de uitdrukkingen eraan toegewezen. In principe worden deze gebruikt om de records uit de gegeven gegevensbron te filteren, de elementen te transformeren en de elementen uit de gegevensbron/reeks te selecteren. In deze handleiding hebben we de vijf verschillende voorbeelden besproken die de elementen selecteren, filteren en transformeren met behulp van de lambda-expressie.