如何在泛型集合上创建扩展方法

Jus*_*tin 31 .net c# oop

我有一个包含FrameworkElements的列表,我想创建一个名为MoveToTop的扩展方法.所有这一切都将接受属于该列表的项目并将其移动到列表的开头.我知道这可以在不使用扩展方法的情况下完成,但我希望它可以作为扩展方法实现.

我在尝试找出创建接受泛型参数的扩展方法的语法时遇到了麻烦.我知道这不正确,但如果有人能告诉我如何实现这一目标,我将不胜感激.

public static class Extensions
{
    public static void MoveToTop(this ICollection<T> sequence)
    {
        //logic for moving the item goes here.
    }
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*are 57

你很接近,只需要<T>在括号前的方法名称之后.这就是放置泛型方法的泛型类型参数列表的位置.它声明了方法将接受的泛型类型参数,然后使它们可用于参数,返回值和方法体.

public static class Extensions
{
    public static void MoveToTop<T>(this ICollection<T> sequence)
    {
        //logic for moving the item goes here.
    }
}
Run Code Online (Sandbox Code Playgroud)