将字典的值分配给文本框

时间:2012-08-27 13:50:53

标签: c# .net winforms

我有一个数据字典,它使用字符串作为索引,使用列表对象作为值:

Dictionary<string, List<string>> dataDict = new Dictionary<string, List<string>>();

我还有20个文本框(TextBox1,TextBox2,TextBox3等)。

如何将List对象中的值分配给20个文本框(假设列表对象中有20个值)?

2 个答案:

答案 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++;
}