Как массив строк, где вы не знаете, где размер массива в С#.NET?
String[] array = new String[]; // this does not work
Как массив строк, где вы не знаете, где размер массива в С#.NET?
String[] array = new String[]; // this does not work
Есть ли конкретная причина, почему вам нужно использовать массив? Если вы не знаете размер перед рукой, вы можете использовать List<String>
List<String> list = new List<String>();
list.Add("Hello");
list.Add("world");
list.Add("!");
Console.WriteLine(list[2]);
Выдает результат
!
MSDN - List (T) для получения дополнительной информации
Вам не нужно указывать размер массива при его создании.
Вы все равно можете объявить массив и создать его позже. Например:
string[] myArray;
...
myArray = new string[size];
Вы не можете создать массив без размера. Для этого вам нужно будет использовать список.
Как уже упоминалось, вы можете использовать List<String>
(который, я согласен, будет лучшим выбором). Если вам понадобится String[]
(для перехода к существующему методу, который требует его, например), вы всегда можете получить массив из списка (который является копией внутреннего массива List<T>'s
) следующим образом:
String[] s = yourListOfString.ToArray();
вы можете объявить пустой массив, как показано ниже
String[] arr = new String[]{}; // declare an empty array
String[] arr2 = {"A", "B"}; // declare and assign values to an array
arr = arr2; // assign valued array to empty array
вы не можете назначать значения выше пустого массива, как показано ниже
arr[0] = "A"; // you can't do this
Думаю, вы можете искать класс StringBuilder. Если нет, то общий класс List в строковой форме:
List<string> myStringList = new List<string();
myStringList.Add("Test 1");
myStringList.Add("Test 2");
Или, если вам нужно быть абсолютно уверенным, что строки остаются в порядке:
Queue<string> myStringInOriginalOrder = new Queue<string();
myStringInOriginalOrder.Enqueue("Testing...");
myStringInOriginalOrder.Enqueue("1...");
myStringInOriginalOrder.Enqueue("2...");
myStringInOriginalOrder.Enqueue("3...");
Помните, что в классе List порядок элементов является деталью реализации, и вам не гарантируется, что они останутся в том же порядке, в который вы их ввели.
Я полагаю, что размер массива, если вычисленное значение.
int size = ComputeArraySize();
// Then
String[] array = new String[size];
Можете ли вы использовать строки List, а затем, когда вы закончите, используйте strings.ToArray(), чтобы получить массив строк для работы с?
Если вы позже узнаете длину массива, вы можете создать начальный массив следующим образом:
String[] array;
И позже, когда вы знаете длину, вы можете закончить ее инициализацию следующим образом
array = new String[42];
Если вы хотите использовать массив, не зная размер сначала, вы должны его объявить, а позже вы можете создать его как
string[] myArray;
...
...
myArray=new string[someItems.count];
string [] array = {};
//он не нулевой, а пустой.
string foo = "Apple, Plum, Cherry";
строка [] myArr = null;
myArr = foo.Split(',');