estoy trabajando con LINQ en VB.NET y, a veces llego a una consulta comoCómo suprimir de VB "variable de iteración no debe han utilizado en la expresión lambda"
For i = 0 To 10
Dim num = (From n In numbers Where n Mod i = 0 Select n).First()
Next
y luego viene la advertencia "Usar la variable de iteración en una expresión lambda puede tener resultados inesperados. En su lugar, cree una variable local dentro del ciclo y asígnele el valor de la variable de iteración".
Sé que no es una buena práctica usar la variable de iteración en la expresión lambda, porque las expresiones lambda se evalúan solo cuando es necesario. (This question es sobre eso)
Ahora mi pregunta es cómo suprimir esta advertencia en los casos en que la expresión se evalúa in situ, con construcciones como Primero(), Único(), Lista(), etc. (Es Sólo una advertencia, pero me gusta mi código limpio.)
(Declarar una variable local y pasando la variable de iteración que es una opción, pero estoy buscando una solución limpia.)
* * ¿Por qué está usted Buscando "algo más"? –
En un bloque de tres líneas (1.Para 2. DoSomething (LinqExpression) 3. Siguiente) simplemente no es bueno tener una cuarta línea 'Dim localVar = iterationVar'. Pero parece, esa es la mejor opción – jaraics