Ich arbeite mit LINQ in VB.NET und manchmal bekomme ich eine Abfrage wieWie VB zu unterdrücken
For i = 0 To 10
Dim num = (From n In numbers Where n Mod i = 0 Select n).First()
Next
und dann kommt es die Warnung „Iteration Variable sollte in Lambda-Ausdruck nicht verwendet worden“ "Die Verwendung der Iterationsvariablen in einem Lambda-Ausdruck kann zu unerwarteten Ergebnissen führen. Erstellen Sie stattdessen eine lokale Variable innerhalb der Schleife und weisen Sie ihr den Wert der Iterationsvariablen zu."
Ich weiß, dass es nicht empfehlenswert ist, die Iterationsvariable im Lambda-Ausdruck zu verwenden, da Lambda-Ausdrücke nur bei Bedarf ausgewertet werden. (This question ist darüber)
Jetzt ist meine Frage, wie diese Warnung in Fällen unterdrückt werden, in denen der Ausdruck vor Ort ausgewertet wird, mit Konstruktionen wie First(), Single(), ToList() usw. (Es ist nur eine Warnung, aber ich mag meinen Code sauber.)
(eine lokale Variable und das Bestehen der Iterationsvariable deklarieren es eine Option, aber ich bin für eine saubere Lösung.)
* Warum * sind Sie auf der Suche nach "etwas anderem"? –
In einem dreizeiligen Block (1.Für 2. DoSomething (LinqExpression) 3. Weiter) ist es einfach nicht nett, eine vierte Zeile 'Dim localVar = iterationVar' zu haben. Aber es scheint, das ist die beste Option – jaraics