Можно ли создавать переменные в цикле? С#

В C# можно ли объявлять переменные в цикле? У меня есть массив имен, и я хочу, чтобы все они были переменными. Есть ли способ их создать? что-то типа

string[] nameArray{ name, othername, anothername };

foreach ( var file in nameArray ) {
    data 'file' = new data();
}

person Ogoun    schedule 23.07.2014    source источник
comment
Вы можете объявлять переменные внутри цикла, но я думаю, что в данном случае вам нужен массив. Записи внутри массива не имеют имен, но сам массив имеет имя, а отдельные записи упоминаются по индексу.   -  person Cameron    schedule 23.07.2014
comment
вы можете создать такую ​​переменную foreach (файл var в nameArray) { // здесь я создаю данные переменной var1 var1= new data(); }   -  person Devendra Soni    schedule 23.07.2014
comment
Это невозможно. Почему вы хотите иметь что-то подобное?   -  person Konrad Kokosa    schedule 23.07.2014
comment
Я читаю имена из каталога и хочу объявить имена файлов как переменные   -  person Ogoun    schedule 23.07.2014
comment
Вы можете объявлять и создавать переменные внутри цикла, как и в любом другом месте, но каждая из них будет а) воссоздаваться на каждой итерации и б) теряться, когда цикл выходит за рамки. Используйте словарь, как предлагает Томас!   -  person TaW    schedule 23.07.2014


Ответы (1)


Вы не можете объявлять переменные «динамически» таким образом, имена переменных должны быть известны статически во время компиляции. Однако вы можете добиться аналогичного результата, используя Dictionary:

string[] nameArray = { "name", "othername", "anothername" };
var dict = new Dictionary<string, data>();
foreach ( var file in nameArray )
{
    dict[file] = new data();
}
person Thomas Levesque    schedule 23.07.2014
comment
Как бы вы вспомнили данные? - person Ogoun; 23.07.2014