代码之家  ›  专栏  ›  技术社区  ›  eriksv88

大小未知的字符串数组

  •  37
  • eriksv88  · 技术社区  · 16 年前

    如果您不知道C.NET中的数组大小,那么字符串数组是怎样的?

    String[] array = new String[]; // this does not work
    
    11 回复  |  直到 8 年前
        1
  •  71
  •   Stan R.    16 年前

    您需要使用数组的具体原因是什么?如果你不知道手前的尺寸,你可能想用 List<String>

    List<String> list = new List<String>();
    
    list.Add("Hello");
    list.Add("world");
    list.Add("!");
    
    Console.WriteLine(list[2]);
    

    会给你一个输出

    !
    

    MSDN - List(T) 更多信息

        2
  •  15
  •   Mark    8 年前

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

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

    string[] myArray;
    
    ...
    
    myArray = new string[size];
    
        3
  •  5
  •   sepp2k    16 年前

    没有大小不能创建数组。你需要用一个清单来做这个。

        4
  •  4
  •   Andrew Hare    16 年前

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

    String[] s = yourListOfString.ToArray();
    
        5
  •  3
  •   Ravi Rajindu    9 年前

    您可以像下面这样声明一个空数组

    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
    
        6
  •  1
  •   jasonh    16 年前

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

        7
  •  0
  •   Vitaliy    16 年前

    我假设数组大小是一个计算值。

    int size = ComputeArraySize();
    
    // Then
    
    String[] array = new String[size]; 
    
        8
  •  0
  •   Wil P    16 年前

    可以使用列表字符串,然后在完成后使用strings.to array()获取要使用的字符串数组吗?

        9
  •  0
  •   Malfist    16 年前

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

    String[] array;
    

    稍后,当你知道长度后,你可以这样初始化它

    array = new String[42];
    
        10
  •  0
  •   shreesha    10 年前

    如果您想在不知道大小的情况下使用数组,首先必须声明它,然后您可以像这样实例化它

    string[] myArray;
    ...
    ...
    myArray=new string[someItems.count];
    
        11
  •  -2
  •   Kay    12 年前

    string foo=“苹果、李子、樱桃”;

    string[]myarr=null;

    myarr=foo.split(',');