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

用常量文本初始化arraylist

  •  40
  • MandoMando  · 技术社区  · 16 年前

    是否可以直接初始化下面的arraylist,而不需要使用afileext字符串数组?

    private static string[] aFileExt = 
         {"css", "gif", "htm", "html", "txt", "xml" };
    private System.Collections.ArrayList alFileTypes =
         new System.Collections.ArrayList(aFileExt);
    

    下面的行是目标,但我的.NET编译器不喜欢它:

    private static System.Collections.ArrayList alFileTypes = 
         new System.Collections.ArrayList({"css","gif","htm","html","txt","xml"});
    

    我正在使用.NET Micro框架,因此无法访问泛型类型。

    6 回复  |  直到 13 年前
        1
  •  67
  •   Jon Skeet    16 年前

    C 1或2:

    private static ArrayList alFileTypes = 
         new ArrayList(new string[] {"css","gif","htm","html","txt","xml"});
    

    C 3使用隐式类型数组:

    private static ArrayList alFileTypes = 
        new ArrayList(new[] {"css","gif","htm","html","txt","xml"});
    

    C 3使用集合初始值设定项:

    private static ArrayList alFileTypes = 
        new ArrayList{"css","gif","htm","html","txt","xml"};
    

    或者创建自己的助手方法:

    public static ArrayList CreateList(params object[] items)
    {
        return new ArrayList(items);
    }
    

    然后:

    static ArrayList alFileTypes = CreateList("css","gif","htm","html","txt","xml");
    

    你为什么不使用通用集合,有什么理由吗?

        2
  •  13
  •   Adam Robinson    16 年前

    如果您使用的是.NET 2.0或更高版本,则应该使用通用的 List<T> 类型(即使是 List<object> ,这将为您提供与 ArrayList )

    如果您使用的是.NET 3.5或更高版本,则可以使用以下语法:

    private static List<string> fileTypes = new List<string>()
    { 
        "css","gif","htm","html","txt","xml" 
    };
    

    不管怎样,如果你想坚持 阵列列表 ,您只需执行以下操作:

    private static System.Collections.ArrayList alFileTypes = 
     new System.Collections.ArrayList(new object[] {"css","gif","htm","html","txt","xml"});
    
        3
  •  8
  •   Thomas Levesque    13 年前

    C 3.0与通用 List<T> ,而不是 ArrayList :

    private static List<string> alFileTypes =
        new List<string> {"css","gif","htm","html","txt","xml"};
    
        4
  •  1
  •   Sean Bright Sean Stinehour    16 年前
    private static System.Collections.ArrayList alFileTypes = 
     new System.Collections.ArrayList(new string [] {"css","gif","htm","html","txt","xml"});
    
        5
  •  1
  •   TLiebe    16 年前

    尝试

    private static System.Collections.ArrayList alFileTypes =   new System.Collections.ArrayList(){"css","gif","htm","html","txt","xml"};
    
        6
  •  0
  •   kemiller2002    16 年前

    是的,换一下就行了

    private static System.Collections.ArrayList alFileTypes = 
         new System.Collections.ArrayList({"css","gif","htm","html","txt","xml"});
    

    private static System.Collections.ArrayList alFileTypes = 
         new System.Collections.ArrayList(new string[] {"css","gif","htm","html","txt","xml"});
    
    推荐文章