将一个arraylist数据移动到C#中的另一个arraylist

bal*_*log 7 c# arraylist

如何将一个Arraylist数据移动到另一个arraylist.我尝试了很多选项,但输出是数组而不是arraylist的形式

Mar*_*ell 16

首先 - 除非您使用的是.NET 1.1,否则您应该避免ArrayList使用类似的集合,例如List<T>.

当你说"复制"时 - 你想要替换,追加创建新的吗?

对于追加(使用List<T>):

    List<int> foo = new List<int> { 1, 2, 3, 4, 5 };
    List<int> bar = new List<int> { 6, 7, 8, 9, 10 };
    foo.AddRange(bar);
Run Code Online (Sandbox Code Playgroud)

要替换,在foo.Clear();之前添加一个AddRange.当然,如果你知道第二个列表足够长,你可以循环索引器:

    for(int i = 0 ; i < bar.Count ; i++) {
        foo[i] = bar[i];
    }
Run Code Online (Sandbox Code Playgroud)

要创建新的:

    List<int> bar = new List<int>(foo);
Run Code Online (Sandbox Code Playgroud)

  • @kashif类型安全(避免愚蠢的错误),性能(装箱和内存),更好的API,支持LINQ等...为什么*不会*有人更喜欢通用版本?我在这里知道的唯一边缘情况是Hashtable,它仍然保留了一些用法,因为它有一个比Dictionary`2好得多的线程模型 (3认同)

Kon*_*lev 6

        ArrayList model = new ArrayList();
        ArrayList copy = new ArrayList(model);
Run Code Online (Sandbox Code Playgroud)


ban*_*ang 6

使用以ICollection作为参数的ArrayList的构造函数。大多数集合都具有此构造函数。

ArrayList newList = new ArrayList(oldList);
Run Code Online (Sandbox Code Playgroud)


Øyv*_*aar 5

ArrayList l1=new ArrayList();
l1.Add("1");
l1.Add("2");
ArrayList l2=new ArrayList(l1);
Run Code Online (Sandbox Code Playgroud)