List <t>中的ConvertAll ExtensionMethod如何?</t>

时间:2013-06-13 06:58:45

标签: c# extension-methods

我想在ConvertAll中为List<T>方法编写我的扩展方法。我在下面写了这样的内容。

public static List<TOutput> MyConvertAll<TOutput>(this List<T> list, Converter<T, TOutput> converter)
{
}

但它给了我错误:

  

错误:无法找到类型或命名空间名称“T”(是吗?   缺少using指令或程序集引用?)

请帮我怎么写?

3 个答案:

答案 0 :(得分:3)

您必须声明类型参数T。

public static List<TOutput> MyConvertAll<TOutput, T>(this List<T> list, Converter<T, TOutput> converter)
        {
        }

答案 1 :(得分:2)

您需要在方法定义中声明所有泛型类型参数,如下所示:

public static List<TOutput> MyConvertAll<T, TOutput>(this List<T> list, Converter<T, TOutput> converter)
{
}

答案 2 :(得分:2)

您的方法需要在两个参数中是通用的:

public static List<TOutput> MyConvertAll<T,TOutput>(this List<T> list, Converter<T, TOutput> converter)