Unterschied zwischen LINQ-Abfragen & Lambda-Ausdruck
Gründe für die Verwendung von lambda-Ausdrücken, wenn wir von LINQ-Abfragen, die gerade zum verkürzen der Länge des Codes , erhöhen die Geschwindigkeit der Entwicklung ist oder es aus anderen Gründen, die nur erreicht werden können durch den Lambda-Ausdruck & nicht von LINQ-Abfragen.
- In der Regel einer der beiden ist kurz und bündig, je nach problem - Sie sollte sowohl als angebracht
- Auf jeden Fall wäre es ziemlich selten für Sie genau die gleiche Länge 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Abfrage-Ausdrücke betreffen nur einen kleinen Teil der LINQ-Operatoren, und sind nur anwendbar, wenn das eigentliche expression beteiligt zu hand eher als (sagen wir) eine
Func<T, bool>
als Prädikat, in welchem Fall die Dinge werden hässlich. Also statt zu schreiben:Ich würde viel lieber schreiben:
Gibt es auch verschiedene andere Fälle, wo die Verwendung von nicht-query-expression-syntax ist einfacher, besonders wenn Ihre Abfrage verwendet nur einen einzigen Betreiber.
Abfrage-Ausdrücke sind effektiv übersetzt in nicht-query-Ausdrücken, so alles, was Sie tun können in query-Ausdrücken kann ausgedrückt werden, die in nicht-query-Ausdrücke. Verwenden von query-Ausdrücken, wo Sie den code einfacher und lesbarer; verwenden Sie Sie nicht, wenn Sie nicht.
Habe ich mehr Informationen darüber, wie query-Ausdrücken arbeiten in einem blog-post, die Sie interessieren könnten.
Gibt es einige LINQ-extension-Methoden, die keine Entsprechungen in LINQ-abfrageausdrücke, und erfordern die Verwendung von Lambda-Ausdrücken. Ein gutes Beispiel ist Enumerable.ToLookup - wenn Sie möchten, erstellen Sie eine ILookup, die Sie benötigen, um Lambda-Ausdrücke zu generieren, diese.