我正在與我的.net 3.5項目中有一堆(約20-30)集合類型接口的COM庫。這些類中的每一個都公開了名爲Count
的屬性以及名爲ItemByIndex(int)
和GetEnumerator()
(其類型爲System.Collections.IEnumerator
)的方法。通用擴展方法,但通用方法,但沒有繼承
但是,這些接口中的每一個接口都是自己實現的,而不是共同的父類。
有沒有辦法編寫一個通用的擴展方法,將集合對象轉換爲列表<>?這是我目前正在做的,但我有20個左右的方法複製和粘貼。
public static List<iml.IManDocument> ToList(this iml.IManDocuments source)
{
List<iManDocument> results = new List<iManDocument>(source.Count);
for (int i = 1; i <= source.Count; i++)
{
results.Add((iml.IManDocument)source.ItemByIndex(i));
}
return results;
}