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));
}

ラジオボタンリストで選択されていないアイテムを取得する必要があるため、同じメソッドをコピーし、CheckBoxListas パラメータの代わりに を持っています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

Generics を使用することもできますが、この場合、単純なデータ リスト コントロールの基本クラスを使用してポリモーフィズムを使用する方が簡単なようです。

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 に答える