我實現IListSource
,需要一個方法GetList()
具有以下特徵:自IList <T>轉換到非通用的IList
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
。
如果我創建一個新的類型的列表List<MyDataRow>
,填充它並返回此列表對象,然後它的工作。因此,換句話說,這個工程:
public System.Collections.IList GetList()
{
List<MyDataRow> list = new List<MyDataRow>();
foreach (MyDataRow row in this._mydata)
{
list.Add(row);
}
return list;
}
但它似乎非常低效的必須重新創建列表只是爲了IList<T>
類型得到它的IList
。爲什麼我可以退回List<MyDataRow>' from 'GetList()
,但不是IList<MyDataRow>
?有沒有人知道有一種方法可以讓我返回IList<MyDataRow>
而無需重新填充新列表?
UPDATE:
的_mydata
成員變量聲明:
private MyData _mydata;
而且MyData
聲明:
public class MyData : IList<MyDataRow>
{
....
}
什麼是'_mydata'場聲明的類型? –
@NicoleCalinoiu:根據他得到的錯誤信息,它是'MyData'。 – Heinzi