在C#.NET中,如何处理一个字符串数组并且不知道数组大小?
String[] array = new String[]; // this does not work
List<String> list = new List<String>();
list.Add("Hello");
list.Add("world");
list.Add("!");
Console.WriteLine(list[2]);
!
请访问MSDN - List(T) 了解更多相关的IT技术信息。
在实例化数组时,不必指定其大小。
你仍然可以声明该数组并稍后进行实例化。例如:
string[] myArray;
...
myArray = new string[size];
你不能创建一个没有大小的数组。你需要使用一个列表。
正如其他人提到的,你可以使用 List<String>
(我同意这将是更好的选择)。如果你需要 String[]
(例如要传递给现有需要它的方法),你可以从列表中检索数组(它是 List<T>
的内部数组的副本),像这样:
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];
String[] array;
当你知道长度后,你可以像这样完成初始化
array = new String[42];
string[] myArray;
...
...
myArray=new string[someItems.count];