The type or namespace name 'T' could not be found
You need to declare T
, which occurs after the method name or class name. Change your method declaration to :
public static IEnumerable<T>
Filter1<T>(this IEnumerable<T> input, Func<T, bool> predicate)
public static class Utility
{
public static IEnumerable<T> Filter1<T>( // Type argument on the function
this IEnumerable<T> input, Func<T, bool> predicate)
{
If you dont care if its an extension method or not, you can add a generic constrain to the class. My guess is you want the extension method.
public static class Utility<T> // Type argument on class
{
public static IEnumerable<T> Filter1( // No longer an extension method
IEnumerable<T> input, Func<T, bool> predicate)
{
You have to put the type argument on the function itself.
public static IEnumerable<T> Filter1<T>(...)