Преобразование строки в имя переменной - PullRequest
0 голосов
/ 09 января 2012
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_" + key) в фактическую переменную.Может ли кто-нибудь помочь мне в этом

Ответы [ 2 ]

10 голосов
/ 09 января 2012

У вас не может быть имен динамических переменных.

Имена переменных не могут быть "созданы".

Вы можете использовать массив или универсальную коллекцию для хранения коллекций данных, которые вы используете.

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);
  } 
}
3 голосов
/ 09 января 2012

Как указано @Oded, вы не можете иметь имена динамических переменных.

Что вы можете сделать, это использовать коллекцию, например словарь:

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

Если ваши ключи всегдачисловой, вы также можете использовать array или List.Тем не менее, без дополнительной информации трудно сказать вам лучший способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...