2009-07-06 4 views
1

Es scheint, gibt es zwei Möglichkeiten, Abfragen zu erstellen - entweder mit Hilfe von Abfrageausdrücke:Wie erstellen Sie Ihre LINQ-Abfragen?

IEnumerable<Customer> result = 
         from customer in customers 
         where customer.FirstName == "Donna" 
         select customer; 

oder mit Erweiterungsmethoden:

IEnumerable<Customer> result = 
      customers.Where(customer => customer.FirstName == "Donna"); 

Welche Sie verwenden und warum? Was glaubst du wird auf lange Sicht beliebter sein?

+0

Duplizieren von http://stackoverflow.com/questions/630045/linq-dot-notation-vs-query-expression und http://stackoverflow.com/questions/1054965/when-to-use-lambda-expressions -anstelle einer-wo-Klausel-in-linq und möglicherweise anderen. –

Antwort

1

In der Ausdruckssyntax ist nur eine begrenzte Anzahl von Operationen verfügbar, zum Beispiel Take() oder First() sind nur mit Erweiterungsmethoden verfügbar.

Ich persönlich bevorzuge Ausdruck, wenn alle erforderlichen Operationen verfügbar sind, wenn nicht, dann falle ich auf Erweiterungsmethoden zurück, da ich finde, dass sie leichter zu lesen sind als Lambdas.

werfen Sie einen Blick auf diese Antwort,

Linq Extension methods vs Linq syntax

1

Ich verwende die Methode Syntax (fast) ausschließlich, weil die Abfragesyntax mehr Einschränkungen. Aus Gründen der Wartungsfreundlichkeit finde ich es besser, die Methodensyntax sofort zu verwenden, anstatt sie später zu konvertieren oder eine Mischung aus beiden Syntaxen zu verwenden.

Es mag anfangs etwas schwieriger zu lesen sein, aber sobald man sich daran gewöhnt hat, funktioniert es ziemlich natürlich.

0

Ich verwende nur die Methodensyntax. Das liegt daran, dass ich viel schneller schreibe und eine Menge Linq schreibe. Ich mag es auch, weil es etwas knapper ist. Wenn man an einem Team arbeitet, ist es wahrscheinlich am besten, einen Konsens darüber zu finden, welcher Stil bevorzugt wird, da das Mischen der beiden Stile schwer zu lesen ist.

Microsoft empfiehlt die Abfragesyntax. "Im Allgemeinen empfehlen wir die Abfragesyntax, weil sie normalerweise einfacher und lesbarer ist". http://msdn.microsoft.com/en-us/library/bb397947.aspx

0

Es hängt davon ab, was Sie und Ihr Team besser finden, und ich würde dies von Fall zu Fall wählen. Es gibt einige Abfragen, die besser in Syntaxform lesen und es gibt einige, die in Methodenform besser lesen. Und natürlich gibt es diesen breiten Mittelweg, wo man nicht so oder so sagen kann, oder manche bevorzugen es so und andere auf diese Weise.

Denken Sie daran, dass Sie beide Formulare zusammen mischen können, um sie lesbarer zu machen.

Ich sehe keinen Grund zu vermuten, dass jede Form in der Zukunft verschwinden wird.