将字符串转换为变量名称

时间:2012-01-09 19:49:07

标签: c# asp.net string

public static string filename2_1, filename2_2, filename2_3;
filename2_1="xyz.jpg";
filename2_2="abc.png";
filename2_3="qwe.jpg";

.....
...
for (int key = 1; key <= 3; key++)
{
        ....
foreach (var item in tabItem)
{
 item.ImagePath.Value = "images1/" + ("filename2_" + key);
 item.ThumbPath.Value = "thumbnails1/" + ("filename2_" + key);
}
}

如上所述,我需要将(“filename2_”+键)转换为实际变量。任何人都可以帮我这个

2 个答案:

答案 0 :(得分:10)

您不能拥有动态变量名称。

无法“创建”变量名称。

您可以使用数组或通用集合来保存正在使用的数据集合。

var fileSuffixList = new List<string>{ "xyz.jpg" , "abc.png", "qwe.jpg"};

foreach(string fileSuffix in fileSuffixList)
{
  ....
 foreach (var item in tabItem)
  {
    item.ImagePath.Value = "images1/" + ("filename2_" + fileSuffix);
    item.ThumbPath.Value = "thumbnails1/" + ("filename2_" + fileSuffix);
  } 
}

答案 1 :(得分:3)

正如@Oded所说,你不能拥有动态变量名。

你可以做的是使用诸如字典之类的集合:

Dictionary<string, int> dictionary = new Dictionary<string, string>();
dictionary.Add("filename2_" + key, "Value");

如果您的密钥始终为数字,您还可以使用arrayList。但是,如果没有更多信息,很难告诉你最好的方法。