C # Практика программирования - PullRequest
0 голосов
/ 17 июня 2009

Я хочу обновить элемент управления на основе значения, например:

       if (StringName == StringName2) 
            ListBox1.Items.Add("send data");
        else if (StringName3 == StringName4)
            DifferentListBox.Items.Add("send data");
        else if (StringName5 == StringName3)
            AnotherListBox.Items.Add("send data");

Или с помощью оператора switch и т. Д., Например, еще 20 раз.

Можно ли поставить эти методы (OneOfTheListBoxes.Items.Add("send data") чтобы поставить в словаре, поэтому мне нужно всего лишь ввести ключ к действию метода, а не повторять каждый оператор.

Или вы можете указать мне на практику, которая заставила бы меня достичь этого? Или как добиться этого в меньшем количестве кода?

Ответы [ 2 ]

7 голосов
/ 17 июня 2009

Да, вы можете поместить все списки в словарь так:

Dictionary<string, ListBox> _Dictionary;

public Something() //constructor
{
   _Dictionary= new Dictionary<string, ListBox>();
   _Dictionary.add("stringname1", ListBox1);
   _Dictionary.add("stringname2", ListBox2);
   _Dictionary.add("stringname3", ListBox3);
}


....


public void AddToListBox(string listBoxName, string valueToAdd)
{
  var listBox = _Dictionary[listBoxName];
  listBox.Items.Add(valueToAdd);
}
1 голос
/ 17 июня 2009

Конечно. Используйте словарь с ключом, содержащим StringName, и значением, содержащим список. Тогда используйте:

myDict[StringName].Items.Add("send data")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...