获取字符串作为变量名

Funlamb

我找到了这个问题,但是它正在与XML文件一起使用,所以我真的不太了解发生了什么。

我要做的是获取要填充到for循环中的对象列表。现在我有这个:

for (int i = 0; i < dogs.Length; i++)
{
    dogs[i] = new Dog();
}
dogs[0].PictureBox = picDog0;
dogs[1].PictureBox = picDog1;
dogs[2].PictureBox = picDog2;
dogs[3].PictureBox = picDog3;

我想做这样的事情:

for (int i = 0; i < dogs.Length; i++)
{
    dogs[i] = new Dog();
    dogs[i].PictureBox = StringToVariable("picDog" + i); 
}

PictureBox 是属性字段,以防有所不同。

StringToVariable()是我不知道的事情。我什至不知道搜索它会叫什么。

彼得·杜尼奥

没有一个好的,最小的完整的代码示例,就不可能确定地说但我希望以下语句在您的情况下能起作用:

dogs[i].PictureBox = (PictureBox)Controls.Find("picDog" + i, true)[0];

这将Form依次搜索当前控件的子级(在这种情况下,我假设是您的子类)。这有些效率低下,因为它必须搜索每个项目的控件集合,但是只要您的项目数量相对较少,就很可能不是问题。

根据您Form的设置方式,以下方法也可能起作用:

string prefix = "picDog";

foreach (PictureBox pictureBox in Controls.OfType<PictureBox>())
{
    if (pictureBox.Name.StartsWith(prefix))
    {
        int index;

        if (int.TryParse(pictureBox.Name.Substring(prefix.Length), out index))
        {
            dogs[index] = pictureBox;
        }
    }
}

该版本仅检查每个子控件一次,尝试解析附加到的初始文本的索引"picDog",如果成功,则使用该索引直接分配给您的数组。这样做的好处是可以很好地扩展到较大的控件列表,但在您的情况下可能会适得其反。

请注意,在以上两个示例中,我都没有进行任何错误检查。在任一示例中,您可能希望添加某种处理,以防在第一个示例中找不到所需的控件,或者在第二个示例中找不到无法解析的控件索引,或无法填写dogs数组的元素之一

如果由于某种原因上述两个示例均不适合您,请编辑您的文章,使其包含更好的代码示例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取字符串中的变量名

来自分类Dev

获取字符串并将其附加在变量名之前

来自分类Dev

将字符串作为变量名QTP传递

来自分类Dev

kdb +:使用字符串作为变量名

来自分类Dev

使用字符串作为变量名

来自分类Dev

kdb +:使用字符串作为变量名

来自分类Dev

使用字符串作为变量名

来自分类Dev

如何获取变量名称作为字符串?

来自分类Dev

Java获取变量名作为字符串

来自分类Dev

如何获取字符串本身作为变量

来自分类Dev

从ArrayList的字符串中获取变量名

来自分类Dev

在 Django 中获取查询字符串变量名

来自分类Dev

返回一个全局变量,使用字符串作为变量名

来自分类Dev

java:如何使用字符串值作为类名和变量名

来自分类Dev

获取PHP变量名称作为许多变量的字符串

来自分类Dev

如何在Python中使用字符串值作为变量名?

来自分类Dev

在dplyr :: mutate中将字符串作为变量名传递

来自分类Dev

在dplyr top_n中使用字符串作为变量名

来自分类Dev

如何使用字符串和/或整数作为变量名

来自分类Dev

比较变量名与字符串以计算新变量

来自分类Dev

如何使用字符串按变量名获取按钮?

来自分类Dev

编写Processing小型库,需要从字符串中获取变量名吗?

来自分类Dev

将字符串值用作变量名

来自分类常见问题

在python中将字符串转换为变量名

来自分类Dev

Python将字符串转换为变量名

来自分类Dev

Swift:将字符串转换为变量名

来自分类Dev

删除包含特定字符串的变量名

来自分类Dev

R:将变量名转换为字符串

来自分类Dev

C#字符串到变量名