私は VB.NET で LINQ を使用していますが、次のようなクエリが表示されることがあります。
For i = 0 To 10
Dim num = (From n In numbers Where n Mod i = 0 Select n).First()
Next
「ラムダ式で反復変数を使用すると、予期しない結果が生じる可能性があります。代わりに、ループ内でローカル変数を作成し、反復変数の値を割り当ててください。」という警告が表示されます。
ラムダ式は必要な場合にのみ評価されるため、ラムダ式で反復変数を使用することはお勧めできません。(この質問はそれについてです)
ここで私の質問は、First()、Single()、ToList() などの構造を使用して、式がその場で評価される場合にこの警告を抑制する方法です (これは単なる警告ですが、コードがクリーンなのが好きです) .)
(ローカル変数を宣言して反復変数を渡すことはオプションですが、私はクリーンな解決策を探しています。)