C# LINQ Lambda-Ausdrücke

C Linq Lambda Ausdrucke



Der Lambda-Ausdruck in C# übernimmt die Ausdrücke/bedingten Anweisungen direkt als seinen Körper ohne Namen. Wir müssen die Parameter angeben und dann werden ihm die Ausdrücke zugewiesen. Bei der Arbeit mit Language Integrated Query (LINQ) müssen Sie möglicherweise die in der Datenquelle vorhandenen Daten transformieren oder eine Datenquelle in eine andere Datenquelle konvertieren. In dieser Anleitung erfahren Sie, wie Sie die Datensätze aus der Datenquelle filtern, indem Sie den Lambda-Ausdruck angeben und die Datensätze aus der Datenquelle auswählen.

Syntax:

  1. Lambda-Ausdruck: (Parameter) => Ausdruck
  2. Lambda-Erklärung: { bedingte Anweisung1 Anweisung2 … }

Beispiel 1:

Erstellen Sie die Liste „Düngemittel“, die fünf Zeichenfolgen enthält. Verwenden Sie den Lambda-Ausdruck, der alle Zeichenfolgen aus der Liste zurückgibt.

verwenden System ;
verwenden System.Linq ;
verwenden System.Collections.Generic ;

Klasse LambdaExpressionExample {

statisch öffentlich Leere Hauptsächlich ( )
{

// Liste der Düngemittel erstellen
Düngemittel auflisten = neu Aufführen ( ) ;
Düngemittel . Hinzufügen ( 'Harnstoff' ) ;
Düngemittel . Hinzufügen ( 'Stickstoff' ) ;
Düngemittel . Hinzufügen ( 'Kalium' ) ;
Düngemittel . Hinzufügen ( 'Di-Ammonium Phosphat' ) ;
Düngemittel . Hinzufügen ( 'Phosphor' ) ;

// Verwenden Sie LambdaExpression, um alle Düngemittel auszuwählen
War Ergebnis = Düngemittel . Wählen ( Eingang1 => Eingang1 ) ;
für jede ( War ich In Ergebnis )
{
Konsole . WriteLine ( ich ) ;
}

}
}

Ausgang:









Erläuterung:



1. Erstellen Sie eine Liste mit Zeichenfolgentypen mit dem Namen „Düngemittel“. Fügen Sie dieser Liste fünf Zeichenfolgen hinzu.

2. Verwenden Sie den Lambda-Ausdruck, um alle Düngemittel auszuwählen. Hier wird der Ausdruck mit dem „Select“-Operator verwendet. Der Ausdruck ist Eingang1 => Eingang1. Anschließend verwenden wir die „foreach“-Schleife, um die Zeichenfolgen anzuzeigen, die vom Lambda-Ausdruck zurückgegeben werden.





Beispiel 2:

Verwenden Sie den Lambda-Ausdruck, um die Düngemittel auszuwählen, die „Phosphat“ enthalten.

verwenden System ;
verwenden System.Linq ;
verwenden System.Collections.Generic ;

Klasse LambdaExpressionExample {

statisch öffentlich Leere Hauptsächlich ( )
{

// Liste der Düngemittel erstellen
Düngemittel auflisten = neu Aufführen ( ) ;
Düngemittel . Hinzufügen ( 'Harnstoff' ) ;
Düngemittel . Hinzufügen ( 'Stickstoff' ) ;
Düngemittel . Hinzufügen ( „Ortho-Phosphat“ ) ;
Düngemittel . Hinzufügen ( 'Di-Ammonium Phosphat' ) ;
Düngemittel . Hinzufügen ( 'Phosphor' ) ;

// Verwenden Sie LambdaExpression, um die Düngemittel auszuwählen, die „Phosphat“ enthalten.
War Ergebnis = Düngemittel . Wo ( Eingang1 => Eingang1 . Enthält ( 'Phosphat' ) ) ;
für jede ( War ich In Ergebnis )
{
Konsole . WriteLine ( ich ) ;
}

}
}

Ausgang:



Es gibt zwei Zeichenfolgen, die „Phosphate“ enthalten.

Erläuterung:

1. Erstellen Sie eine Liste mit Zeichenfolgentypen mit dem Namen „Düngemittel“. Fügen Sie dieser Liste fünf Zeichenfolgen hinzu.

2. Hier wird der Ausdruck mit dem „Where“-Operator verwendet. Der Ausdruck ist inp1 => inp1.Contains(“Phosphat”). Anschließend verwenden wir die „foreach“-Schleife, um die Zeichenfolgen anzuzeigen, die vom Lambda-Ausdruck zurückgegeben werden.

Beispiel 3:

Lassen Sie uns eine Liste (order_quantity) haben, die drei Bestellungen enthält. Geben Sie den Lambda-Ausdruck an, um jeder Bestellung 5 hinzuzufügen.

verwenden System ;
verwenden System.Linq ;
verwenden System.Collections.Generic ;

Klasse LambdaExpressionExample {

statisch öffentlich Leere Hauptsächlich ( )
{

// Mengenliste erstellen
Bestellmenge auflisten = neu Aufführen ( ) ;
Bestellmenge . Hinzufügen ( 5 ) ;
Bestellmenge . Hinzufügen ( 7 ) ;
Bestellmenge . Hinzufügen ( 8 ) ;

// LambdaExpression auf 5 für jede Bestellung verwenden.
War Ergebnis = Bestellmenge . Wählen ( Eingang1 => Eingang1 + 5 ) ;
für jede ( War ich In Ergebnis )
{
Konsole . WriteLine ( ich ) ;
}

}
}

Ausgang:

Die Liste [5,7,8] wird in [10,12,13] umgewandelt.

Erläuterung:

1. Erstellen Sie die Liste der Mengen vom Typ „Ganzzahl“.

2. Wir wählen zuerst die Bestellungen aus und fügen dann zu jeder Bestellung 5 hinzu. Daher wird der „Select“-Operator verwendet. Der Ausdruck ist Eingang1 => Eingang1 + 5.

Beispiel 4:

Erstellen Sie eine Listendatenquelle vom Typ „Ereignis“ (mit drei Attributen – Event_Name, Event_Status und Event_Budget) und geben Sie die Datensätze zurück, deren Event_Budget größer als 5000 ist.

verwenden System ;
verwenden System.Linq ;
verwenden System.Collections.Generic ;

// Erstellen Sie eine Klasse mit dem Namen „Event_Source“ mit 5 Ereignissen.
öffentlich Klasse Ereignisquelle
{
öffentlich statisch Leere Hauptsächlich ( )
{
// Veranstaltungsliste
IList-Veranstaltungen = neu Aufführen ( ) {
neu Fall ( ) { Veranstaltungsname = „Technisches Camp“ ,Event_Status = 'Geplant' ,Event_Budget = 10000 } ,
neu Fall ( ) { Veranstaltungsname = „Marketingcamp“ ,Event_Status = 'Vollendet' ,Event_Budget = 5000 } ,
neu Fall ( ) { Veranstaltungsname = 'Andere' ,Event_Status = 'Geplant' ,Event_Budget = 1000 } ,
neu Fall ( ) { Veranstaltungsname = 'Politik' ,Event_Status = 'Geplant' ,Event_Budget = 13000 } ,
neu Fall ( ) { Veranstaltungsname = 'Finanzen' ,Event_Status = 'Vollendet' ,Event_Budget = 20000 } ,
} ;

//Event_Budget größer als 5000.
War Ergebnis = Veranstaltungen . Wo ( Eingang1 => Eingang1 . Event_Budget > 5000 ) ;
für jede ( War ich In Ergebnis ) {
Konsole . WriteLine ( 'NAME: ' + ich . Veranstaltungsname + „STATUS:“ + ich . Event_Status + „HAUSHALT:“ + ich . Event_Budget ) ;
}
}
}

öffentlich Klasse Fall {
öffentlich Zeichenfolge Veranstaltungsname { erhalten ; Satz ; }
öffentlich Zeichenfolge Event_Status { erhalten ; Satz ; }
öffentlich int Event_Budget { erhalten ; Satz ; }
}

Ausgang:

Es gibt drei Datensätze in der Liste „Ereignisse“, deren Event_Budget größer als 5000 ist.

Erläuterung:

1. Zuerst erstellen wir eine „Event“-Klasse mit drei Attributen.

2. Anschließend erstellen wir eine Liste mit fünf Ereignissen.

3. Verwendung des inp1 => inp1.Event_Budget > 5000 Mit dem Lambda-Ausdruck wählen wir die Datensätze aus, deren Event_Budget größer als 5000 ist.

Beispiel 5:

Nutzen Sie den vorherigen Code und ändern Sie den Lambda-Ausdruck. Geben Sie die Ereignisse mit dem Event_Name zurück, der mit „Camp“ endet, und mit dem Event_Status, der „Planned“ ist.

//Lambda-Ausdruck – Event_Name endet mit „Camp“ und Event_Status ist „Planned“.
War Ergebnis = Veranstaltungen . Wo ( Eingang1 => Eingang1 . Veranstaltungsname . Endet mit ( 'Lager' ) && Eingang1 . Event_Status == 'Geplant' ) ;
für jede ( War ich In Ergebnis ) {
Konsole . WriteLine ( 'NAME: ' + ich . Veranstaltungsname + „STATUS:“ + ich . Event_Status + „HAUSHALT:“ + ich . Event_Budget ) ;
}

Ausgang:

Es gibt nur einen Datensatz, der beide Bedingungen erfüllt.

Erläuterung:

Hier geben wir zwei Bedingungen im Lambda-Ausdruck an. Der && (und)-Operator wird verwendet, um die beiden Bedingungen auf „True“ zu setzen. Die erste Bedingung verwendet die EndsWith()-Methode, um zu prüfen, ob eine Zeichenfolge mit der angegebenen Zeichenfolge endet. Die zweite Bedingung verwendet den „Vergleich“-Operator (==), um zu prüfen, ob beide Werte gleich sind oder nicht.

Abschluss

In C# übernimmt der Lambda-Ausdruck die Ausdrücke/Bedingungsanweisungen als seinen Körper ohne Namen. Wir müssen die Parameter angeben. Anschließend werden ihm die Ausdrücke zugewiesen. Im Wesentlichen werden diese verwendet, um die Datensätze aus der angegebenen Datenquelle zu filtern, die Elemente zu transformieren und die Elemente aus der Datenquelle/-sequenz auszuwählen. In diesem Leitfaden haben wir die fünf verschiedenen Beispiele besprochen, die die Elemente mithilfe des Lambda-Ausdrucks auswählen, filtern und transformieren.