如何在一个字符串数组中,你不知道c#.NET中数组大小的位置?
String[] array = new String[]; // this does not work
答案 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(',');