2010-04-15 61 views
0

我想在按钮单击事件中创建一个列表...每次点击按钮时,都应该创建一个与上一个名称不同的名称的新列表... 任何人都可以请帮助我...我卡上...创建列表<string>动态

+2

你是什么意思,“一个新的名单应该创建不同的名称”?也许你可以发布一个你已经试过的东西的例子,这样我们可以更好地感受你想要做的事情。 – 2010-04-15 05:53:24

+2

列表中没有名称... *变量*和*字段*具有名称。这听起来像你可能想要一个列表或列表字典的列表。 – 2010-04-15 05:55:23

+0

public列表 str = new列表(); 公共无效校验() { 对(INT I = 0;我 ... 上面给出的代码是buttonclick2,我想每次在buttonclick3中创建一个新列表... – Shiv 2010-04-15 06:00:17

回答

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 2010-04-15 06:11:05

+0

它被添加到列表中的顺序lls是自动的。第一个按钮点击将它添加到lls [0],第二个按钮将添加到lls [1]等等。在你的代码中,我可以看到str是包含所有checkedbox文本的列表。只需将它添加到像这样的集合lls:for循环后面的lls.Add(str) – Amsakanna 2010-04-15 06:21:23

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