C# Can';t将扩展方法添加到LINQ
好的,所以我尝试将ForEach扩展方法添加到linq中,因为没有用于IEnumerables的ForEach,但由于某些原因,我看不到它 扩展方法是: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操作) { 收益回报作用(); }
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();
}