【发布时间】:2012-03-06 11:19:31
【问题描述】:
我有以下扩展方法:
public static EntitySet<T> ToEntitySetFromInterface<T, U>(this IList<U> source)
where T : class, U
{
var es = new EntitySet<T>();
IEnumerator<U> ie = source.GetEnumerator();
while (ie.MoveNext())
{
es.Add((T)ie.Current);
}
return es;
}
我尝试按如下方式使用它:
List<IItemMovement> p = new List<IItemMovement>();
EntitySet<ItemMovement> ims = p.ToEntitySetFromInterface<ItemMovement, IItemMovement>();
ItemMovement 实现 IItemMovement 的地方。编译器抱怨:
'System.Collections.Generic.List' 不包含 'ToEntitySetFromInterface' 的定义并且没有扩展方法 'ToEntitySetFromInterface' 接受类型的第一个参数 'System.Collections.Generic.List' 可以找到(是 您缺少 using 指令或程序集引用?)
不,我没有错过参考。如果我只是键入包含该方法的静态类的名称,它就会弹出,扩展方法也是如此。谢谢
【问题讨论】:
-
我不确定 List
list = new List ();会编译吗? -
否则代码对我有用(使用模拟的 ItemMovement 和 IItemMovement
-
我相信这个问题与智能感知无关。如果你不能编译它,那几乎不是智能感知的错。
标签: c# linq extension-methods