无法将扩展方法添加到LINQ

时间:2014-09-01 10:53:02

标签: c# linq silverlight generics

好的,所以我试图将forEach扩展方法添加到linq中,因为IEnumerables没有ForEach但由于某种原因,我无法看到它。

扩展方法是:

public  static  IEnumerable<TSource> ForEach<TSource>(Func<TSource> action)
{ 
    yield return action();
}

当我尝试调用它时(gdMainGrid):

1 个答案:

答案 0 :(得分:1)

要让智能感知在您的代码中尝试显示某些内容,您必须添加一个参数。 this IEnumerable<TSource> source

或者它不是IEnumerable<TSource>的扩展方法(而gdMain.Children.Cast<UIElement>()将返回IEnumerable<UIElement>

public  static  IEnumerable<TSource> ForEach<TSource>(this IEnumerable<TSource> source, Func<TSource> action)
{ 
    yield return action();   
}