未知大小的string数组
如何在一个string数组,你不知道在C#.NET中的数组大小?
String[] array = new String[]; // this does not work
是否有一个特定的原因,你需要使用一个数组? 如果您事先不知道大小,可能需要使用List<String>
List<String> list = new List<String>(); list.Add("Hello"); list.Add("world"); list.Add("!"); Console.WriteLine(list[2]);
会给你一个输出
!
MSDN – 列表(T)的更多信息
实例化时,您不必指定数组的大小。
您仍然可以声明数组并稍后进行实例化。 例如:
string[] myArray; ... myArray = new string[size];
你不能创build一个没有大小的数组。 你需要使用一个列表。
正如其他人所提到的,你可以使用List<String>
(我同意这将是一个更好的select)。 如果你需要String[]
(传递给需要它的现有方法),你总是可以从列表(这是List<T>'s
内部数组的拷贝)检索一个数组,像这样:
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类。 如果不是,则以stringforms显示genericsList类:
List<string> myStringList = new List<string(); myStringList.Add("Test 1"); myStringList.Add("Test 2");
或者,如果您需要绝对确定string保持有序:
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];
你可以使用一个Liststring,然后当你完成使用strings.ToArray()来获取string数组的工作?
如果您稍后将知道数组的长度,可以像这样创build初始数组:
String[] array;
稍后当你知道这个长度时,你可以像这样完成初始化
array = new String[42];
如果你想在不知道大小的情况下使用数组,你必须声明它,稍后你可以像实例化它
string[] myArray; ... ... myArray=new string[someItems.count];
stringfoo =“苹果,李子,樱桃”;
string [] myArr = null;
myArr = foo.Split(',');