2010-04-15 2 views
0

Я хочу создать список в событии нажатия кнопки ... каждый раз, когда нажимается кнопка, новый список должен быть создан с другим именем, чем предыдущий ... Может ли кто-нибудь помочь мне ... Я застрял на этом ...Создать список <string> динамически

+2

Что значит «новый список должен быть создан с другим именем»? Возможно, вы можете опубликовать пример того, что вы уже пробовали, чтобы мы могли лучше понять, что вы пытаетесь сделать. –

+2

Списки не имеют имен ... * variables * и * fields * имеют имена. Похоже, вам может понадобиться список списков или словарь списков. –

+0

public List str = новый Список (); общественного недействительный чек() { для (INT I = 0; I ... кода приведенного выше в buttonclick2, и я хочу каждый раз создавать новый список в buttonclick3 ... – Shiv

ответ

2

Лучше создать List<List<string>>

List<List<string>> lls = new List<List<string>>(); 

Button_Click() 
{ 
    List<string> str = new List<string>(); 
    for (int i = 0; i < sub.Count; i++) 
    { 
     if (checkbx[i].Checked == true) 
     { 
      str.Add(checkbx[i].Text); 
     } 
    }  
    lls.Add(str); 
} 

, следовательно, их имена были бы LLS [0], LLS [1], ... и т.д.

+0

эй большое спасибо ... но я немного смутился ... как добавить элементы в lls [0] при нажатии кнопки один раз, а затем на lls [1] при следующем нажатии кнопки и так далее ... – Shiv

+0

Заказ добавлен в список lls автоматически. Первый щелчок кнопки добавит его в lls [0], а второй - в lls [1] и так далее. В вашем коде я мог видеть, что str - это список, в котором все тексты отмеченных полей. Просто добавьте его в коллекцию lls следующим образом: lls.Add (str) после цикла for – Amsakanna

0

Список объекты не имеют имен, переменные имеют имена.

Создание переменных динамически в основном бесполезно, особенно на скомпилированных языках. Вы хотите создать коллекцию, в которой вы можете хранить несколько списков, например. список списков:

public List<List<string>> str = new List<List<string>>(); 

public void check() { 
    List<string> subs = new List<string>(); 
    for (int i = 0; i < sub.Count; i++) { 
    if (checkbx[i].Checked) { 
     subs.Add(checkbx[i].Text); 
    } 
    } 
    str.Add(subs); 
} 
0

Используйте словарь списков, в которых ключ является именем списка, а значение - это сам список.

//Defining Dictionary 
Dictionary<string, List<string>> ListDict = new Dictionary<string, List<string>>(); 

//Add lists in Dictionary 
OnClick(string listname) 
{ 
ListDict.Add(listname, new List<string>()); 
} 

//Add values in List 
ListDict[listname].Add("xyz"); 
Смежные вопросы