我正在实现IListSource
需要GetList()
具有以下签名的方法:
IList GetList()
我正在使用 .NET 框架 2,我想返回一个实现 IList 的对象,如下所示:
public System.Collections.IList GetList()
{
return this._mydata; // Implements IList<MyDataRow>
}
但我得到一个编译错误说:Cannot implicitly convert type MyData to System.Collections.IList
.
如果我创建一个新的 type 列表List<MyDataRow>
,填充它并返回这个列表对象,那么它就可以工作了。换句话说,这有效:
public System.Collections.IList GetList()
{
List<MyDataRow> list = new List<MyDataRow>();
foreach (MyDataRow row in this._mydata)
{
list.Add(row);
}
return list;
}
但是必须重新创建列表才能将其从 typeIList<T>
转换为IList
. 为什么我可以返回 a List<MyDataRow>' from 'GetList()
,但不能返回 a IList<MyDataRow>
?有谁知道我在IList<MyDataRow>
不重新填充新列表的情况下返回的方法?
更新:
_mydata
声明成员变量:
private MyData _mydata;
并MyData
声明:
public class MyData : IList<MyDataRow>
{
....
}