Ein Lambda-Ausdruck in C# ist eine anonyme Funktion, die entweder einen Ausdruck oder eine Reihe von Anweisungen enthält und der zur Implementierung des Lambda-Ausdrucks verwendete Operator ist „=>“. Der Lambda-Ausdruck besteht aus zwei Teilen, von denen der linke Teil die Eingabe und der rechte Teil der Ausdruck ist. Ein einfacher Lambda-Ausdruck nimmt ein Argument auf und gibt einen Wert zurück. Eines der häufigsten Szenarios für die Verwendung des Lambda-Ausdrucks wäre die Liste.
Da wir nun verstanden haben, was Lambda-Ausdruck in C# ist, wollen wir uns mit der Standardsyntax für die Implementierung des Ausdrucks befassen. Mit Lambda Expression haben wir zwei Syntaxen für zwei Typen:
Syntax:
input => expression;
Syntax:
input => { statements };
Je nach Situation können Entwickler frei wählen, was ihren Anforderungen entspricht.
Wenn wir einen Lambda-Ausdruck implementieren, haben wir zwei Seiten und das Lambda-Symbol von => dazwischen. Die linke Seite nimmt eine Eingabe beliebiger Art entgegen, während die rechte Seite einen Ausdruck oder eine Anweisung entgegennimmt. In C# implementiert Lambda Expression eine Funktion, die es unserem Compiler ermöglicht, den Variablentyp basierend auf dem Kontext, in dem er sich befindet, abzuleiten. Diese Funktion wird als Typinferenzfunktion bezeichnet. Wir können Funktionen als Argument an einen Methodenaufruf übergeben.
Jeder Lambda-Ausdruck wird intern einer Schnittstelle zugeordnet. Wenn wir nun ein Programm mit Lambda Expression ausführen, bestimmt der Compiler basierend auf dem Kontext des Ausdrucks, welche Schnittstelle zugewiesen werden soll. Dies geschieht alles zur Kompilierungszeit. Diese Ausdrücke sind anonyme Methoden, also Methoden ohne Namen, und werden mit der funktionalen Schnittstelle implementiert.
Beispiele: Beginnen wir nun mit der Implementierung des Lambda-Ausdrucks. Für unser erstes Programm werden wir den Lambda-Ausdruck in einer einfachen Form implementieren, wobei wir eine benutzerdefinierte Klasse verwenden, und unser zweites Beispiel wird ziemlich einfach sein, wo wir das erste Vorkommen einer ungeraden Zahl in einer Liste finden. Also, fangen wir an.
Code:
using System; using System.Collections.Generic; using System.Linq; class City_Details { public int cityCode { get; set; } public string cityName { get; set; } } class det { public static void Main(string[] args) { List<City_Details> details = new List<City_Details>() { new City_Details{ cityCode = 1, cityName = "Mumbai" }, new City_Details{ cityCode = 2, cityName = "Chennai" }, new City_Details{ cityCode = 3, cityName = "Pune" }, new City_Details{ cityCode = 4, cityName = "Ahmedabad" }, new City_Details{ cityCode = 5, cityName = "Delhi" } }; var newDetails = details.OrderBy(x => x.cityName); foreach(var value in newDetails) { Console.WriteLine(value.cityCode + " " + value.cityName); } } }
Code-Erklärung: Nach dem Importieren von Systemdateien erstellen wir eine Klasse mit zwei Eigenschaften als Stadtcode und Stadtname. Dann haben wir unsere Klasse det, mit Haupt- und anderen Funktionen. Hier rufen wir unsere erste Klasse an und weisen den Stadtcode und den Namen in Form einer Liste zu. Dann listen wir unsere Detailliste nach Reihenfolge mit OrderBy auf und implementieren hier den Lambda-Ausdruck. Nachdem wir nun die Daten in einer nach Städtenamen sortierten Liste aufgelistet haben, führen wir eine foreach-Schleife ein und geben jede nächste Zeile aus. Wenn dieser Code fehlerfrei ausgeführt wird, druckt er die Liste, allerdings anders, was bedeutet, dass Ahmedabad, das mit A beginnt, zuerst gedruckt wird und Pune ganz unten erscheint. Sehen Sie sich den unten angehängten Screenshot der Ausgabe an:
Wie Sie sehen können, ist unsere Ausgabe alphabetisch wie erwartet. Kommen wir nun zu unserem zweiten Beispiel: Wir haben eine einfache Liste von Zahlen, die aus ungeraden und geraden Zahlen besteht. Lassen Sie uns also unser zweites Programm verstehen und ausführen.
Code:
using System; using System.Collections.Generic; class ExampleTwo { static void Main() { List<int> newList = new List<int>() { 10, 21, 31, 40 }; int oddNumber = newList.FindIndex(x => x % 2 != 0); Console.WriteLine( "\n " + oddNumber); } }
Code-Erklärung: Dies ist unser einfachstes Beispiel für die Implementierung eines Lambda-Ausdrucks, bei dem wir einfach eine Liste und einen Lambda-Ausdruck verwenden. Wir beginnen mit den Systemdateien, dann mit der Klasse „ExampleTwo“ und „main“. Dann haben wir unsere Ganzzahlliste initialisiert und in unserer Liste haben wir vier Zahlen. Das sind zwei ungerade und zwei gerade Zahlen. Als nächstes haben wir unsere Integer-Variable, in der wir FindIndex verwenden, und hier verwenden wir Lambda Expression. Innerhalb von FindIndex haben wir ein x als Eingabe und unsere Ausgabe wird eine Zahl sein, die nicht durch die Zahl 2 teilbar ist. Nach dieser Berechnung haben wir Indizes unserer ungeraden Zahlen. Und schließlich haben wir unsere Ausgabeanweisung, die die Indexnummer des ersten Vorkommens der ungeraden Zahl zurückgibt. Sehen Sie sich den unten angehängten Screenshot der Ausgabe an:
Wie wir in der Code-Erklärung verstanden haben, ist unsere Ausgabe die Indexnummer der ungeraden Zahl und nicht die ungerade Zahl selbst. Hier haben wir also 1, was einem Index von 21 entspricht.
Da wir nun fast alles über den Lambda-Ausdruck in C# gelernt haben, müssen wir den Nutzen seiner Verwendung verstehen. Einer der Hauptvorteile ist die Möglichkeit, den Code wiederzuverwenden, wodurch wir eine bessere Lesbarkeit erreichen. Da die Art der Eingabe nicht angegeben werden muss, handelt es sich um eine der flexibelsten Funktionen.
Einer der Vorteile ist die Möglichkeit, eine Methode für den Lambda-Ausdruck zu schreiben, genau dort, wo wir sie verwenden möchten. Dies ist am besten, wenn wir eine Methode nur einmal erstellen und verwenden müssen. Auf diese Weise sparen wir uns viel Aufwand, da wir keine separate Methode deklarieren und schreiben müssen.
Lambda-Ausdrücke können in jeder Programmiersprache von großem Nutzen sein. In C# funktioniert Lambda Expression als anonymer Ausdruck, wobei er auf der linken Seite eine Eingabe und auf der rechten Seite einen Ausdruck oder eine Liste von Anweisungen hat. Der Lambda-Ausdruck wird mit „=>“ gekennzeichnet. Es ist die Flexibilität, jede Art von Input zu haben, die es für Entwickler von großem Nutzen macht.
Das obige ist der detaillierte Inhalt vonC#-Lambda-Ausdruck. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!