массив строки с неизвестным размером

using (var file = File.Create("pricequote.txt"))
{
    ...........                        
}

using (var file = File.OpenRead("pricequote.txt"))
{
    ..........
}

Простой, легкий и также удаляет / очищает объект, как только вы закончите с ним.

41
задан sv88erik 21 October 2009 в 21:00
поделиться

9 ответов

Есть ли конкретная причина, по которой вам нужно использовать массив? Если вы заранее не знаете размер, вы можете использовать List

List<String> list = new List<String>();

list.Add("Hello");
list.Add("world");
list.Add("!");

Console.WriteLine(list[2]);

. Вы получите результат

!

MSDN - List (T) для получения дополнительной информации

75
ответ дан 27 November 2019 в 00:20
поделиться

строка [] выстраивает = {};

//это не является пустым вместо этого, это пусто.

0
ответ дан 27 November 2019 в 00:20
поделиться

Вам не нужно указывать размер массива при его создании.

Вы все равно можете объявить массив и создать его позже. Например:

string[] myArray;

...

myArray = new string[size];
16
ответ дан 27 November 2019 в 00:20
поделиться

Как уже упоминалось другими, вы можете использовать List (что, я согласен, было бы лучшим выбором). Если вам нужна String [] (например, для перехода к существующему методу, который требует этого), вы всегда можете получить массив из списка (который является копией List < T> внутренний массив) следующим образом:

String[] s = yourListOfString.ToArray();
4
ответ дан 27 November 2019 в 00:20
поделиться

Думаю, вы ищете класс 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 порядок элементов является деталью реализации. и вам не гарантируется, что они останутся в том же порядке, в котором вы их разместили.

0
ответ дан 27 November 2019 в 00:20
поделиться

Я полагаю, что размер массива - это вычисленное значение.

int size = ComputeArraySize();

// Then

String[] array = new String[size]; 
0
ответ дан 27 November 2019 в 00:20
поделиться

Можете ли вы использовать строки списка, а затем, когда вы закончите, использовать строки.ToArray (), чтобы заставить работать массив строк?

0
ответ дан 27 November 2019 в 00:20
поделиться

Если вы позже узнаете длину массива, вы можете создать начальный массив следующим образом:

String[] array;

А позже, когда вы узнаете длину, вы можете завершить его инициализацию следующим образом

array = new String[42];
0
ответ дан 27 November 2019 в 00:20
поделиться

Вы не можете создать массив без размера. Для этого вам понадобится список.

7
ответ дан 27 November 2019 в 00:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: