私はいくつかの冗長なコードを持っていました:
private bool AnyUnselectedCombox()
{
bool anyUnselected = false;
foreach (Control c in this.Controls)
{
if (c is ComboBox)
{
if ((c as ComboBox).SelectedIndex == -1)
{
anyUnselected = true;
break;
}
}
}
return anyUnselected;
}
...Resharper は、次のような LINQ 式でエレガント化することを提案しました。
return this.Controls.OfType<ComboBox>().Any(c => (c as ComboBox).SelectedIndex == -1);
...しかし、その後のResharperインスペクションは、生成されたコード(上記)について次のように述べています: 「型キャストは冗長です」 (「C as ComboBox」部分を参照)。
return this.Controls.OfType<ComboBox>().Any(c => c.SelectedIndex == -1);
Resharper は、Resharper 承認済みのコードを生成すべきではありませんか? それとも、完全に「腰を締める」ために2回のパスが必要な場合がありますか?