我正在与我的.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;
}