大小未知的字符串数组

时间:2009-10-21 21:00:35

标签: c# arrays

如何在一个字符串数组中,你不知道c#.NET中数组大小的位置?

String[] array = new String[]; // this does not work

12 个答案:

答案 0 :(得分:73)

是否有特定原因需要使用数组?如果您事先不知道尺寸,可能需要使用List<String>

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

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

Console.WriteLine(list[2]);

会给你输出

!

MSDN - List(T)了解更多信息

答案 1 :(得分:16)

实例化数组时,不必指定数组的大小。

您仍然可以声明数组并在以后实例化它。例如:

string[] myArray;

...

myArray = new string[size];

答案 2 :(得分:6)

如果没有大小,则无法创建数组。你需要使用一个列表。

答案 3 :(得分:4)

正如其他人所说,你可以使用List<String>(我同意这是一个更好的选择)。如果您需要String[](传递给需要它的现有方法),您始终可以从列表中检索数组(这是List<T>'s内部数组的副本),例如这样:

String[] s = yourListOfString.ToArray();

答案 4 :(得分:3)

你可以声明一个空数组,如下所示

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

答案 5 :(得分:0)

我想你可能正在寻找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类,项目的顺序是一个实现细节,并且不保证它们将保持与您放入它们的顺序相同。

答案 6 :(得分:0)

我认为数组大小是否为计算值。

int size = ComputeArraySize();

// Then

String[] array = new String[size]; 

答案 7 :(得分:0)

你可以使用List字符串,然后在完成后使用strings.ToArray()来获取要使用的字符串数组吗?

答案 8 :(得分:0)

如果您稍后知道数组的长度,可以像这样创建初始数组:

String[] array;

以后当你知道长度时就可以像这样完成初始化

array = new String[42];

答案 9 :(得分:0)

如果你想在不知道大小的情况下使用数组,你必须先声明它,然后你可以像

那样实例化它。
string[] myArray;
...
...
myArray=new string[someItems.count];

答案 10 :(得分:0)

string [] array = {};

//它不是null而是空的。

答案 11 :(得分:-2)

string foo =“Apple,Plum,Cherry”;

string [] myArr = null;

myArr = foo.Split(',');