C# BindingList到ArrayList给出运行时错误

C# BindingList到ArrayList给出运行时错误,c#,vb.net,arraylist,bindinglist,C#,Vb.net,Arraylist,Bindinglist,我正在尝试使用ArrayList,并将其绑定到BindingList 如果我试着把它放进去(我有严格的选择权),我会得到一个我实施的铸造建议- 然而,无论我做什么尝试,我总是会遇到运行时错误 Unable to cast object of type 'ArrayList' to type 'IList` 守则: Dim myBoundList As System.ComponentModel.BindingList(Of something) = New System.Compone

我正在尝试使用ArrayList,并将其绑定到BindingList

如果我试着把它放进去(我有严格的选择权),我会得到一个我实施的铸造建议-

然而,无论我做什么尝试,我总是会遇到运行时错误

Unable to cast object of type 'ArrayList' to type 'IList`
守则:

Dim myBoundList As System.ComponentModel.BindingList(Of something) =
    New System.ComponentModel.BindingList(Of something)
      (CType(myArrayList, System.Collections.Generic.IList(Of something)))
我已尝试插入。今天

链接上被接受的答案做了完全相同的事情(尽管意图相反),我已经尝试过了。。。(我的意思是,创建一个IList项,并分配

IList iList = new ArrayList();
它给了我同样的错误


我正在使用VB.NET,但是c也会有帮助。请帮助。谢谢。

您应该使用泛型
列表
类(a.NET类型)进行检查而不是使用非泛型的
ArrayList
。我怀疑这可能与您的问题有关。它可能试图将非泛型的
ArrayList
强制转换为
IList
(IList的泛型版本).

如果试图将数组列表作为项目添加到列表框中,可以使用以下代码:

private void Form1\u加载(对象发送方,事件参数e)
{
//创建一个新的数组列表。
ArrayList=新建ArrayList();
//将项添加到数组列表中
列表。添加(“MyItem1”);
列表。添加(“MyItem2”);
列表。添加(“MyItem3”);
//将列表框的数据源设置为数组列表
listBox1.DataSource=列表;
}

我在另一个堆栈溢出问题的帮助下找到了答案:Dim StronglyTypedList=OriginalArrayList.Cast(属于MyType().ToList())谢谢您建议了正确的路径。