我有一个数据字典,它使用一个字符串作为索引和一个列表对象的值,如下所示:
Dictionary<string, List<string>> dataDict = new Dictionary<string, List<string>>();
我还有 20 个文本框(TextBox1、TextBox2、TextBox3 等)
如何将 List 对象中的值分配给 20 个文本框(假设列表对象中有 20 个值)?
我建议将您的 TextBoxes 放在容器控件中,例如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;
}
}
我有一种我无法正确理解问题的感觉(尤其是拥有字典的目的),但您可以使用以下内容:
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++;
}