C# Can';t将扩展方法添加到LINQ

C# Can';t将扩展方法添加到LINQ,c#,linq,silverlight,generics,C#,Linq,Silverlight,Generics,好的,所以我尝试将ForEach扩展方法添加到linq中,因为没有用于IEnumerables的ForEach,但由于某些原因,我看不到它 扩展方法是: public static IEnumerable<TSource> ForEach<TSource>(Func<TSource> action) { yield return action(); } 公共静态IEnumerable ForEach(Func操作) { 收益回报作用(); }

好的,所以我尝试将ForEach扩展方法添加到linq中,因为没有用于IEnumerables的ForEach,但由于某些原因,我看不到它

扩展方法是:

public  static  IEnumerable<TSource> ForEach<TSource>(Func<TSource> action)
{ 
    yield return action();
}
公共静态IEnumerable ForEach(Func操作)
{ 
收益回报作用();
}
当我试着调用它时(
gdMain
是一个
Grid
):


要让intellisense在您尝试代码时显示某些内容,您必须添加一个参数
此IEnumerable源代码

或者它不是
IEnumerable
的扩展方法(并且
gdMain.Children.Cast()
将返回
IEnumerable

公共静态IEnumerable ForEach(此IEnumerable源,Func操作)
{ 
收益回报作用();
}

这不是一个扩展方法。首先,您不认为扩展方法需要一个
This
第一个参数吗?为什么不在MSDN上查找任何扩展方法,看看它们的签名是什么?最后<代码>可枚举。ForEach。唉,是的,我忘了,但即使加上这个,它也不起作用。。由于您更新了代码,请同时更新问题中的代码。
public  static  IEnumerable<TSource> ForEach<TSource>(this IEnumerable<TSource> source, Func<TSource> action)
{ 
    yield return action();   
}