我喜欢填充。通过指定一个列表的价值观只是喜欢我会一个整数列,但我不能确定如何这样做没有重复的呼吁"增加"方法。

例如,我想到分配{1,2,3,"string1","string2"}来对列表.我知道对其他阵列可以使所分配的,如:

int[] IntArray = {1,2,3};

是否有一个类似的方式做到这一对列表?我试过addrange方法,但大括号方法无法实现ICollection接口。

有帮助吗?

解决方案

阵列表已构造函数接受ICollection,其实施由阵列类。

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

其他提示

根据版本的C#你用的是的,你有不同的选项。

C#3.0已经收集的初始化程序,细节在 斯科特区的博客

这里的一个例子是你的问题。

ArrayList list = new ArrayList {1,2,3};

如果你是初始收集目的,最有构造,采取类似的组件AddRange,虽然再一次为你提到,这可能不是一个选项。

你的意见暗示,你选择。因为它是第一个组成,你发现。

假设你只是寻找一个名单的整数,这可能是最好的方式这样做。

List<int> list = new List<int>{1,2,3};

如果您使用的C#2.0(其中有仿制药,但是没有收集的初始化程序).

List<int> list = new List<int>(new int[] {1, 2, 3});

虽然int[]格式可能不是正确的旧版本,可能需要指定数量的项目数。

我假定你没有使用C#3.0,其中已经收集的初始.如果你不烦恼的开销,建立一个临时阵列,你可以这样做,在1.1/2.0:

ArrayList list = new ArrayList(new object[] { 1, 2, 3, "string1", "string2"});

(种回答我自己的问题但是...)

最近的事我发现什么我想要的是使用的对列表.适配器法:

object[] values = { 1, 2, 3, "string1", "string2" };
ArrayList AL = new ArrayList();
AL = ArrayList.Adapter(values);

//or during intialization
ArrayList AL2 = ArrayList.Adapter(values);

这足够我需要什么,但是我希望它可以在一个没有建立临时阵列如其他人已经提出了建议。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top