我正在清理一些代码,我正在使用的是在 C# 的代码隐藏中创建的 gridview。创建的 boundfields 有一个 visible 属性,稍后将确定它是否添加到 gridView 将包含的列集合中。
构建 gridView 时,它引用一个表示默认列集合的属性,但在此属性中,每个 boundfield 的可见属性都使用 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 个字段,并且有 30 个左右的 if 语句不适合我。我希望可能有一个更优雅的解决方案。尽管我想到将所有列添加到某种集合对象(列表、数组等)中,然后循环遍历它,但这样做似乎效率较低。
关于如何更优雅地做这样的事情有什么想法吗?我被难住了...
谢谢