我有以下代码创建一个扩展IEnumerable<T>
:
//http://stackoverflow.com/a/1779135/1180926
public static IEnumerable<T> SkipLast<T>(this IEnumerable<T> source, int n)
{
//.......
}
当我尝试将此应用于列表时:
public static void RemoveTwo(List<string> strList)
{
strList = strList.SkipLast(2);
}
我收到以下错误:
无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Collections.Generic.List”。存在显式转换(您是否缺少演员表?)
但是List<T>
继承IEnumerable<T>
(src),所以它不应该也继承它的扩展方法吗?