私はいくつかのコードをクリーンアップするために取り組んでいます。私が取り組んでいるのは、C# のコード ビハインドで作成されているグリッドビューです。作成されたバインドされたフィールドには、gridView に含まれる列のコレクションに追加されるかどうかを後で決定する表示可能なプロパティがあります。
gridView が構築されると、既定の列コレクションを表すプロパティが参照されますが、このプロパティ内では、バインドされた各フィールドの表示可能なプロパティが if ステートメントで評価され、表示されている場合はコレクションに追加されます。コードは次のようになります。
private GridView.BaseFieldCollection _defaultColumns;
private GridView.BaseFieldCollection DefaultColumns
{
get
{
if (Col1.Visible)
{
_defaultColumns.Add(Col1);
}
if (Col2.Visible)
{
_defaultColumns.Add(Col2);
}
if (Col3.Visible)
{
_defaultColumns.Add(Col3);
}
if (Col4.Visible)
{
_defaultColumns.Add(Col4);
}
if (Col5.Visible)
{
_defaultColumns.Add(Col5);
}
}
}
問題は、評価するフィールドが 30 ほどあることと、if ステートメントが 30 ほどあることは、私には合わないということです。これにはもっとエレガントな解決策があるかもしれないと思っていました。ただし、すべての列をある種のコレクション オブジェクト (リスト、配列など) に追加し、それをループすることに頭を悩ませましたが、そうすると効率が低下する可能性があるように思われました。
このようなことをもう少しエレガントに行う方法について何か考えはありますか? 私は困惑しています...
ありがとう