目前,我有多个文本块,我想根据字符串的名称访问。请看下面的例子:
TextBlock test1 = new TextBlock();
TextBlock test2 = new TextBlock();
TextBlock test3 = new TextBlock();
TextBlock test4 = new TextBlock();
public static void changeValues()
{
string name = "test";
for (int i = 1; i < 5; i++)
{
[name + i].Text = "Wow";
}
}
正如您所看到的,我正在尝试访问text1,text2等。我这样做的原因是因为“name”的值可能随时更改,因此我可以重新使用此代码。我也可以使“i&lt; 5”成为“i&lt; number”并使该方法将int作为参数之一。问题当然是这实际上不起作用。我需要字符串名称作为名称给出的TextBlock的引用。任何帮助表示赞赏!
答案 0 :(得分:1)
@PetSerAl说:
var yourBlocks = new TextBlock[]
{
new TextBlock(),
new TextBlock(),
new TextBlock(),
new TextBlock()
};
foreach (var block in yourBlocks)
{
block.Text = "Wow";
}
答案 1 :(得分:0)
字典怎么样?
Dictionary<string, string> myDictionary=
new Dictionary<string, TextBlock>();
myDictionary.Add("name1", mytextBlock1);
myDictionary.Add("name2", mytextBlock2);
myDictionary["name1"] = new TextBlock();
var tBlock = myDictionary["name2"];