未知大小的字符串数组
是否有一个特定的原因,你需要使用一个数组?如果你不知道前手的大小,你可能想使用List<String>
List<String> list = new List<String>();
list.Add("Hello");
list.Add("world");
list.Add("!");
Console.WriteLine(list[2]);
会给你
!
MSDN - List(T)输出以获取更多信息
您不能创建一个没有大小的数组。你需要使用一个列表。
我想你可能正在寻找StringBuilder类。如果没有,那么以字符串形式泛型列表类:
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类中,物品的顺序是一个实施细节,你不能保证他们将保持在你把它们放入的同一顺序。
他为什么要寻找StringBuilder?这没有意义 – 2009-10-21 21:03:09
它看起来像他试图把几个字符串放在一起。我补充说,如果他想跟踪几个字符串,他可能想使用List类。此外,队列类如果他需要保留订单。 – jasonh 2009-10-21 21:06:33
“与List类,项目的顺序是一个实现的细节,你不能保证他们将保持在你把它们放入的顺序。”这是不正确的。列表保留顺序:如果您执行一系列添加,然后迭代列表,则项目将按您添加它们的顺序排列。 (当然,你可以在列表中间插入项目,对列表进行排序等等,但事情依然按照你的要求进行。)你可能在考虑Dictionary,HashSet等。 – itowlson 2009-10-21 21:12:19
我想如果一个计算值的数组大小。
int size = ComputeArraySize();
// Then
String[] array = new String[size];
您可以使用列表字符串,然后当你完成使用strings.ToArray()来获取字符串数组一起工作?
正如其他人已经提到你可以使用List<String>
(我同意这将是一个更好的选择)。在您需要的String[]
(传递给需要它的实例的现有方法),你可以随时检索列表中的数组(这是List<T>'s
内部数组的副本)事件是这样的:
String[] s = yourListOfString.ToArray();
如果你以后会知道数组的长度,你可以创建初始数组是这样的:
String[] array;
后来当你知道长度就可以完成初始化像这样
array = new String[42];
实例化时,您不必指定数组的大小。
您仍然可以声明数组并稍后将其实例化。例如:
string[] myArray;
...
myArray = new string[size];
string foo =“Apple,Plum,Cherry”;
string [] myArr = null;
myArr = foo。分裂(',');
不好转换这样的字符串!事实并非如此。 NET拆分(Char())应该这样做!如果输入来自用户呢?你应该首先检查“,”??如果你对一个字符串进行硬编码,那么无论如何你都知道它的大小! :) – sv88erik 2013-09-20 12:18:51
如果你想使用数组不知道大小首先你必须声明它,以后你可以实例化它像
string[] myArray;
...
...
myArray=new string[someItems.count];
你见过这个答案!当这是创建?如果你想获得积分,那么我建议你看看新的物品 – sv88erik 2015-03-02 11:19:44
你可以声明空数组像下面
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
可能的重复[如何将字符串添加到字符串\ [\]阵列?没有.Add功能](http://*.com/questions/1440265/how-to-add-a-string-to-a-string-array-theres-no-add-function) – Antonio 2015-09-04 15:33:19