Frage

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

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

oder über Erweiterungsmethoden:

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

Welche verwenden Sie und warum? Was halten Sie für die langfristige populärer sein wird?

War es hilfreich?

Lösung

Nur eine begrenzte Anzahl von Operationen in der Ausdruckssyntax zur Verfügung steht, zum Beispiel, Take () oder First () ist nur Erweiterungsmethoden verfügbar werden.

Ich persönlich bevor Ausdruck, wenn alle erforderlichen Operationen zur Verfügung stehen, wenn nicht, dann falle ich zurück auf Erweiterungsmethoden, wie ich sie leichter finden als Lambda-Ausdrücke zu lesen.

einen Blick auf diese Antwort,

Linq Erweiterungsmethoden vs Linq-Syntax

Andere Tipps

Ich verwende die Methode Syntax (fast) ausschließlich, weil die Abfragesyntax mehr Einschränkungen. Für Wartbarkeit Gründe finde ich es bevorzugt, die Methode Syntax sofort zu verwenden, anstatt es vielleicht später Umwandlung oder eine Mischung aus beiden Syntaxen verwendet wird.

Es könnte ein wenig schwieriger sein, zuerst zu lesen, aber sobald man sich daran gewöhnt hat, funktioniert es ziemlich natürlich.

ich nur die Methode Syntax verwenden. Das ist, weil ich es viel schneller schreiben finden, und ich schreibe eine Tonne Linq. Ich mag es auch, weil es mehr terse ist. Wenn in einem Team arbeitet, ist es wahrscheinlich am besten zu einem Konsens zu kommen, wie auf der die bevorzugte Art, wie Mischen die beiden Arten schwer zu lesen.

Microsoft empfiehlt die Abfragesyntax. „Im Allgemeinen empfehlen wir Abfragesyntax, weil es in der Regel einfacher und besser lesbar“. http://msdn.microsoft.com/en-us/library/bb397947. aspx

Es hängt davon ab, wie Sie und Ihr Team besser lesbar finden, und ich würde das Produkt auf einem von Fall zu Fall entscheiden. Es gibt einige Anfragen, die besser in der Syntax Form lesen und es gibt einige, die besser in der Methode Form lesen. Und natürlich gibt es, dass eine breite Mittelweg, wo man nicht die eine oder andere sagen kann, oder einige bevorzugen es auf diese Weise, und andere, die Art und Weise.

Beachten Sie, dass Sie zusammen beiden Formen mischen können, wo er könnte es besser lesbar machen.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top