私はこのコードを持っていた:Resharperがコード変更を提案し、変更に不平を言うのはなぜですか?
return children.SelectMany(c => GetChildControls<TControl>(c)).Concat(children);
を...とReSharperのは、私がこれまでそれを変更提案:あなたはおそらく見たように、
internal static IEnumerable<TControl> GetChildControls<TControl>(this Control control) where TControl : Control
{
var children = control.Controls != null ? control.Controls.OfType<TControl>() : Enumerable.Empty<TControl>();
return children.SelectMany(GetChildControls<TControl>).Concat(children);
}
違い:文脈では
return children.SelectMany(GetChildControls<TControl>).Concat(children);
その行の "改良された"バージョンが挿入された "(c)"を省略したということです。
しかし、疑わしいものとして、「IEnumerableの複数の列挙が可能です」
ええ、そうかもしれませんが、それは複数でもよいはずですが、それはなぜですか?私はそれを以前の状態に戻すべきですか?
私の推測では、Resharperは各行に対して一度に示唆するコード変更の数に制限があると思います。 "可能な複数の列挙"の問題は、コードの両方のバージョンに存在しますが、Resharperは、「改善」が行われ、そのメッセージがなくなると、それを表示します。 –