Krishh
Krishh

Reputation: 4231

Converting a string to a variable name

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);
}
}

As stated above I need to convert ("filename2_" + key) into actual variable. Can anyone help me regarding this

Upvotes: 0

Views: 4696

Answers (2)

Oded
Oded

Reputation: 498904

You can't have dynamic variable names.

Variable names cannot be "created".

You can use an array or a generic collection to hold the collections of data you are using.

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);
  } 
}

Upvotes: 10

Ivan
Ivan

Reputation: 10372

As @Oded stated, you can't have dynamic variable names.

What you can do is use a Collection such as a dictionary:

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

If your keys are always numeric, you can also use an array or a List. However, without more information, it's hard to tell you the best way to go about it.

Upvotes: 3

Related Questions