我们可以初始化动态字符串数组

时间:2010-06-08 06:42:57

标签: c#-3.0

有没有办法初始化动态字符串数组。


public class CXmlFileHook
    {
        string  vAppname;
        string  vClassname;
        string  vIdmark;
        string  vExecname;
        string [] vApiName;
        string  vCtor;

    public CXmlFileHook()
    {
        this.vAppname = "Not Set";
        this.vIdmark = "Not Set";
        this.vClassname = "Not Set";
        this.vExecname = "Not Set";
        this.vApiName = new string[9] { "Not Set", "Not Set", "Not Set", "Not Set", "Not Set", "Not Set", "Not Set", "Not Set" ,"Not Set"};

        this.vCtor = "CXmlFileHook()";

    }

现在我希望字符串的大小应该动态增加,并根据大小初始化它自己是否可能????

1 个答案:

答案 0 :(得分:2)

仍然不确定你真正需要知道什么,所以这里有几个答案可供选择: - )

C#中的数组不能改变它的长度。如果需要动态集合,请使用集合类,例如。 List<T>

可以使用相同的语法初始化List<T>

this.vApiName = new List<string> 
  { 
    "Not Set", 
    "Not Set", 
    "Not Set", 
    "Not Set", 
    "Not Set", 
    "Not Set", 
    "Not Set", 
    "Not Set",
    "Not Set"
  };

如果数组的长度在运行时没有改变,您可以使用它。在同时声明和初始化数组时,无需指定数组的长度。长度由编译器确定(在运行时它仍然是常量):

  this.vApiName = new string[] // <= no array-length, set to 9 by compiler
  { 
    "Not Set", 
    "Not Set", 
    "Not Set", 
    "Not Set", 
    "Not Set", 
    "Not Set", 
    "Not Set", 
    "Not Set",
    "Not Set"
  };

如果您只想使用空值进行初始化,则无需初始化默认值(参见this link)。

this.vApiName = new string[9]; // array containing 9 x null