Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将字典的值指定给文本框_C#_.net_Winforms - Fatal编程技术网

C# 将字典的值指定给文本框

C# 将字典的值指定给文本框,c#,.net,winforms,C#,.net,Winforms,我有一个数据字典,它使用字符串作为索引,使用列表对象作为值,如下所示: Dictionary<string, List<string>> dataDict = new Dictionary<string, List<string>>(); Dictionary dataDict=newdictionary(); 我还有20个文本框(文本框1、文本框2、文本框3等) 如何将列表对象中的值分配给二十个文本框(假设列表对象中有二十个值)?我建议将文本

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

Dictionary<string, List<string>> dataDict = new Dictionary<string, List<string>>();
Dictionary dataDict=newdictionary();
我还有20个文本框(文本框1、文本框2、文本框3等)


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

我建议将文本框放在一个容器控件中,如
面板

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;
    }
}
var alltextboxs=txtPanel.Controls.OfType();
foreach(数据目录中的var kv)
{
串索引=千伏键;
字符串值=字符串连接(“,”,千伏值);
TextBox txt=alltextboxs.FirstOrDefault(txt=>txt.Name==“TextBox”+索引);
如果(txt!=null)
{
txt.Text=值;
}
}

我觉得我无法正确理解这个问题(尤其是拥有字典的目的),但您可以使用以下方法:

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++;
}
inti=1;
列表值=dataDict[“0”];//从字典中获取第一项
foreach(值中的字符串数据)
{
(this.Controls.Find(“Textbox”+i,true)[0]作为Textbox)。Text=数据;
i++;
}

为什么不将键设为文本框,而不是表示该文本框名称的字符串?此外,这是winforms、WPF、ASP.NET还是什么?如果你真的想这样做,只需创建一个文本框集合,然后使用例如lambda分配值。“使用int作为索引”,但你的键是字符串。你在那里存储了什么?@Tim Schmelter对不起,你是对的,它是一个字符串@IdontKnowPopepersonal你能提供一个例子吗?