假设我有一个 POCO 和一个 List 类:
class MyClass
{...}
class MyClasses : List<MyClass>
{...}
IEnumerable<MyClass>以及将 an 映射到列表的以下方法MyClasses:
public static TListType ToListOfType<TListType, TItemType>(this IEnumerable<TItemType> list) where TListType : IList<TItemType>, new()
{
var ret = new TListType();
foreach (var item in list)
{
ret.Add(item);
}
return ret;
}
我希望这段代码能够编译,但事实并非如此:
var list = someListOfMyClass.ToListOfType<MyClasses>();
但我得到
错误 CS1061“IEnumerable”不包含“ToListOfType”的定义,并且找不到接受“IEnumerable”类型的第一个参数的可访问扩展方法“ToListOfType”(您是否缺少 using 指令或程序集引用?)
然而,这确实有效:
var list = someListOfMyClass.ToListOfType<MyClasses, MyClass>();
我不明白为什么类型推断不足以让编译器知道项目类型是什么,因为变量this是已知类型的列表。
慕虎7371278
Cats萌萌
相关分类