Como suprimir a "variável de iteração do VB não deve ser usada na expressão lambda"
Estou trabalhando com LINQ no VB.NET e às vezes chego a uma consulta como
For i = 0 To 10
Dim num = (From n In numbers Where n Mod i = 0 Select n).First()
Next
e então vem o aviso "O uso da variável de iteração em uma expressão lambda pode ter resultados inesperados. Em vez disso, crie uma variável local dentro do loop e atribua a ela o valor da variável de iteração. "
Sei que não é uma boa prática usar a variável de iteração na expressão lambda, porque as expressões lambda são avaliadas apenas quando necessário. (Essa questão é sobre isso)
Agora, minha pergunta é: como suprimir esse aviso nos casos em que a expressão é avaliada no local, com construções como First (), Single (), ToList (), etc. (É apenas um aviso, mas eu gosto do meu código) .)
(Declarar uma variável local e passar a variável de iteração para ela é uma opção, mas estou procurando uma solução limpa.)