我有一个数据字典,它使用字符串作为索引,使用列表对象作为值:
Dictionary<string, List<string>> dataDict = new Dictionary<string, List<string>>();
我还有20个文本框(TextBox1,TextBox2,TextBox3等)。
如何将List对象中的值分配给20个文本框(假设列表对象中有20个值)?
答案 0 :(得分:0)
我建议将TextBox放在像Panel
这样的容器控件中:
var allTextBoxes = txtPanel.Controls.OfType<TextBox>();
foreach(var kv in dataDict)
{
String index = kv.Key;
String values = String.Join(",", kv.Value);
TextBox txt = allTextBoxes.FirstOrDefault(txt => txt.Name == "TextBox" + index);
if(txt != null)
{
txt.Text = values;
}
}
答案 1 :(得分:0)
我感觉我无法正确理解这个问题(特别是有字典的目的),但你可以使用以下内容:
int i = 1;
List<string> values = dataDict["0"]; // gets the first item from the dictionary
foreach (string data in values)
{
(this.Controls.Find("Textbox" + i, true)[0] as TextBox).Text = data;
i++;
}