2

我有一种方法可以获取未在复选框列表中选中的项目,如下所示:

public static string[] GetNotSelectedCheckboxes(CheckBoxList list)
{
    ArrayList values = new ArrayList();
    for (int counter = 0; counter < list.Items.Count; counter++)
    {
        if (!list.Items[counter].Selected)
        {
            values.Add(list.Items[counter].Value);
        }
    }
    return (String[])values.ToArray(typeof(string));
}

我现在需要在单选按钮列表中获取未选中的项目,我复制了相同的方法,而不是CheckBoxList作为参数,我有一个RadioButtonList.

public static string[] GetNotSelectedRadioButtons(RadioButtonList list)
{
    ArrayList values = new ArrayList();
    for (int counter = 0; counter < list.Items.Count; counter++)
    {
        if (!list.Items[counter].Selected)
        {
            values.Add(list.Items[counter].Value);
        }
    }
    return (String[])values.ToArray(typeof(string));
}

现在代码做了完全相同的事情,我读了一些关于泛型方法的文章,这是我应该使用的地方吗?我查看了它,但语法不正确,如果我没有明确将其指定为单选或复选框列表,我不确定如何使用list.Items 。

我应该在这里使用通用方法以及关于我应该如何继续进行的任何输入吗?

提前致谢。

4

1 回答 1

0

您可以使用泛型......但在这种情况下,使用简单数据列表控件的基类使用多态性似乎更容易

public static string[] GetNotSelectedRadioButtons(ListControl list)

如果要实现泛型:

public static string[] GetNonSelectedItems<T>(T list) where T : ListControl
{
    ... do your stuff
}
于 2012-09-19T04:05:30.107 回答