2015-10-15 2 views
-2

Как я могу объявить несколько имен переменных внутри цикла в C#как объявить несколько имен переменных цикла в C#

Есть ли способ сделать объявить п строк с помощью цикла

я не использовать array..please, если это может быть сделано без массива, то пожалуйста скажите это будет очень полезно для меня

Например: -

String st1 = ""; 
String st2 = ""; 
String st3 = ""; 
String st4 = ""; 
String st5 = ""; 

Если есть способ сделать это то пожалуйста, помогите

+2

Вы можете объявить массив и затем пропустить его для инициализации элементов. –

+4

Вместо этого вы можете использовать List или Array (string []). Нам нужна дополнительная информация. –

+0

Вы пытаетесь создать неопределенное число переменных? Вам нужны новые, * индивидуальные * переменные? – Ben

ответ

3

Ну, если я интерпретирую ваш вопрос правильно, вы можете провозгласить array или list, затем инициализировать эти elements в цикле

Например (массив) (если вы хотите исправить ряд элементов):

int n = 10; // number of strings 

string[] str = new string[n]; // creates a string array of n elements 

for (int i = 0; i < n; i++) { 
    str[i] = ""; // set the value "" at position i in the array 
} 

(список) (если вы не хотите исправить количество элементов)

using System.Collections.Generic; 

... 
int n = 10; 
List<string> str = new List<string>(); // creates a list of strings 
// List<string> str = new List<string>(n) to set the number it can hold initially (better performance) 

for (int i = 0; i < n; i++) { 
    list.Add(""); // if you've set an initial capacity to a list, be aware that elements will go after the pre allocated elements 
} 

list[0] = "hello world"; // how to use a List 
list[list.Count - 1] = "i am the last element"; // list.Count will get the total amount of elements in this list, and we minus 1 to fix indexing 
+0

Можно ли это сделать без массива, тогда скажите, что это будет очень полезно. –

+0

@PalashSachan. Этот метод фактически создает массив переменной длины, в зависимости от того, сколько вы хотите создать ('n'). Таким образом, это может сработать для вас, если вы не знаете значения 'n'. – Ben

+0

@PalashSachan обновил мой ответ, чтобы включить пример списка и как его использовать (использование очень похоже на массив, но это не фиксированный размер) – Hayden

3

Если вы не знаю, сколько строк вам нужно, используйте List<string>

List<string> strList = new List<string>(); 

for (int i = 0; i < loopTotal; i++) 
{ 
    string s = "foo"; 
    strList.Add(s); 
} 

При использовании List, вы можете иметь набор переменных, без определенного счета. Вы можете иметь где-то между 0 и (вставьте максимальное число здесь).


Если вы сделать знаете, сколько строк вам нужно, вы можете использовать asray из string[]:

string[] Array = new string { "", "", "", "", "" }; 

foreach (int i = 0; i < Array.Count(); i++) 
{ 
    Array[i] = "foo"; 
} 

Это гарантирует, что каждый элемент массива имеет значение. Однако, будучи определенный список, вы можете вместо этого использовать foreach, который будет использовать счетчик массива в качестве счетчика цикла:

foreach (string s in Array) 
{ 
    Array[s] = "foo"; 
} 
+0

будет этот «Список » и с «str.List.Add (s) "создаст n строку ?? –

+0

Что это значит, это создать новую строку, установить переменную так, как вы хотите, а затем добавить ее в список. Поэтому, если вы зацикливаете это 5 раз, у вас будет список с 5 строками в нем. Если вы зацикливаете его 500 раз, у вас будет список из 500 строк. – Ben

+0

Вы можете узнать больше о [Lists here] (https://msdn.microsoft.com/en-us/library/6sh2ey19 (v = vs.110) .aspx) – Ben

2

Либо добавить эти значения в коллекцию ...

String s1 = "text"; 
var c = new List<string>(new [s1]); 

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

Или вы можете посмотреть на отражение msdn example. Как правило, для производительности недостаточно отражения.

Из любопытства было бы полезно знать, почему массивы не разрешены.

Редактировать: сюда входит пример инициатора коллекции в соответствии с комментариями. Различные коллекции имеют разные конструкторы, но список позволяет вам передать ienumerable, чтобы начать работу. В этом примере создается встроенный массив для добавления в коллекцию.

Смежные вопросы