将泛型ienumerable转换为arraylist

Ali*_*san 3 c# generics

我需要将linq查询从泛型ienumerable转换为arraylist.

ArrayList myArrayList = new ArrayList();
         var b =
              (from myObj in myCollection
           select new myClass
           {
            Name = myObj.Name,
            ac = myObj.ac
           });
Run Code Online (Sandbox Code Playgroud)

我试过了

b.Cast<ArrayList>();
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

编辑: 我使用@devdigital解决方案

但我还要指出,同时我发现了一个hackish解决方案.

myArrayList.InsertRange(0, b.ToArray());
Run Code Online (Sandbox Code Playgroud)

dev*_*tal 15

ArrayList类型的构造函数之一需要a ICollection,因此您应该能够执行以下操作:

var b =
    (from myObj in myCollection
     select new myClass
    {
      Name = myObj.Name,
      ac = myObj.ac
    }).ToArray();

ArrayList myArrayList = new ArrayList(b);
Run Code Online (Sandbox Code Playgroud)

  • 是的,这就是为什么使用ToArray()将b转换为数组的原因.System.Array实现ICollection.您也可以使用课程列表. (3认同)