C#数组方法帮助

C#数组方法帮助,c#,methods,C#,Methods,有人能告诉我如何以更好、更优雅的方式重写下面的方法吗 // in class------------------ public static void RefreshAllDropdownlists(DropDownList ddlRemoveUsersFromRole, DropDownList ddlAddUsersToRole, DropDownList ddlAddAllUsersToRole, DropDownList ddlRemoveAllUsersFromRole, D

有人能告诉我如何以更好、更优雅的方式重写下面的方法吗

// in class------------------

    public static void RefreshAllDropdownlists(DropDownList ddlRemoveUsersFromRole, DropDownList ddlAddUsersToRole, DropDownList ddlAddAllUsersToRole, DropDownList ddlRemoveAllUsersFromRole, DropDownList ddlDeleteAllUsersFromRole)
    {
        ddlRemoveUsersFromRole.ClearSelection();
        ddlAddUsersToRole.ClearSelection();
        ddlAddAllUsersToRole.ClearSelection();
        ddlRemoveAllUsersFromRole.ClearSelection();
        ddlDeleteAllUsersFromRole.ClearSelection();
    }

// in codebehind------------------

UserGvUtil.RefreshAllDropdownlists(ddlRemoveUsersFromRole, ddlAddUsersToRole, ddlAddAllUsersToRole, ddlRemoveAllUsersFromRole, ddlDeleteAllUsersFromRole);
谢谢大家!

类似于

public static void RefreshAllDropdownlists(params DropDownList[] dropDownLists)
{
    if (dropDownLists != null)
        foreach (var ddl in dropDownLists)
            ddl.ClearSelection();
}

您可以将DropDownList对象列表传递给函数,然后可以执行以下操作:

public static void RefreshAllDropdownlists(List<DropDownList> lists)
{
   foreach(DropDownList dropDown in lists)
   {
     dropDown.ClearSelection();
   }
}
公共静态无效刷新所有下拉列表(列表)
{
foreach(列表中的下拉列表)
{
dropDown.ClearSelection();
}
}

使用
params
参数修饰符传递
DropDownList
s数组:

public static void RefreshAllDropdownlists(params DropDownList[] dropDownLists)
{
    foreach (DropDownList ddl in dropDownLists)
    {
        ddl.ClearSelection();
    }
}

用法与您当前的方法相同

在我看来相当不错。重写代码会有什么好处?它做你想做的。@Alastair Pitts,有了这段代码,每次他想刷新另一个DDL时,都必须修改这个方法……太棒了,谢谢!这正是我的目标,但无法理解语法。
var listsToRefresh = new List<DropDownList>
                {
                    ddlRemoveUsersFromRole,
                    ddlAddUsersToRole,
                    ddlAddAllUsersToRole,
                    ddlRemoveAllUsersFromRole,
                    ddlDeleteAllUsersFromRole
                };
listsToRefresh.ForEach(l=>l.ClearSelection());
 public static class DropDownListExtensions
    {
        public static void Reset(this DropDownList dropDownList)
        {
            dropDownList.ClearSelection();
            //... do more stuff

        }
    }

listsToRefresh.ForEach(l=>l.Reset());