C#:隐式Arraylist赋值是否可行?

Lyn*_*don 3 c# arraylist

我想通过指定一个值列表来填充一个arraylist,就像我将整数数组一样,但我不确定如何在不重复调用"add"方法的情况下这样做.

例如,我想将{1,2,3,"string1","string2"}分配给一个arraylist.我知道对于其他数组,您可以进行如下任务:

int[] IntArray = {1,2,3};
Run Code Online (Sandbox Code Playgroud)

是否有类似的方法为arraylist做这个?我尝试了addrange方法,但花括号方法没有实现ICollection接口.

Guv*_*nte 14

根据您使用的C#版本,您有不同的选项.

C#3.0在Scott Gu的Blog上有集合初始化器,详细信息

这是您的问题的一个示例.

ArrayList list = new ArrayList {1,2,3};
Run Code Online (Sandbox Code Playgroud)

如果您正在初始化一个集合对象,那么大多数构造函数都会将类似的组件添加到AddRange,尽管如您所述,这可能不是一个选项.


Sun*_*nov 7

数组列表的ctor接受ICollection,它由Array类实现.

object[] myArray = new object[] {1,2,3,"string1","string2"};
ArrayList myArrayList = new ArrayList(myArray);
Run Code Online (Sandbox Code Playgroud)