93 Stimmen

Sollte ich zwei "where"-Klauseln oder "&&" in meiner LINQ-Abfrage verwenden?

Wenn ich eine LINQ-Abfrage mit mehreren "und"-Bedingungen schreibe, sollte ich eine einzelne where Klausel mit && oder mehrere where Klauseln, eine für jede Bedingung?

static void Main(string[] args)
{
    var ints = new List<int>(Enumerable.Range(-10, 20));

    var positiveEvensA = from i in ints
                         where (i > 0) && ((i % 2) == 0)
                         select i;

    var positiveEvensB = from i in ints
                         where i > 0
                         where (i % 2) == 0
                         select i;

    System.Diagnostics.Debug.Assert(positiveEvensA.Count() == 
                                         positiveEvensB.Count());
}

Gibt es außer der persönlichen Vorliebe oder dem Kodierungsstil (lange Zeilen, Lesbarkeit usw.) noch andere Unterschiede zwischen positivEvensA y positiveEvensB ?

Ein möglicher Unterschied besteht darin, dass verschiedene LINQ-Provider möglicherweise besser in der Lage sind, mit mehreren where s statt eines komplexeren Ausdrucks. Stimmt das?

1voto

DotnetDude Punkte 11329

Wie andere schon gesagt haben, ist es eher eine persönliche Vorliebe. Ich mag die Verwendung von &&, da sie besser lesbar ist und die Syntax anderer gängiger Sprachen nachahmt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X