有没有办法在 C# 中为自定义 class 的泛型集合创建方法?

Is there a way to create a method for a generic collection of a custom class in C#?

我想知道这是否可能。因为我对 IEnumerator/IEnumerables 不太满意,所以我不知道有什么方法可以做到。 我想它会是这样的:

public namespace cookietest
{
    public static class Program{
        public List<Cookie> cookies = new List<Cookie>();
        CookieJar cookieJar = cookies.ToCookieJar();
    }

    public class Cookie{
        public int size;
        //Implementatin of ToCookieJar()
    }
}

我知道有更好的设计解决方案,这真的不是问题,但我很好奇,找不到任何相关信息。

您要找的是extension methods

给定一个引用类型,例如 List<T>,您可以 "extend" 使用您自己的方法,如下所示:

public static class Program
{
    public List<Cookie> cookies = new List<Cookie>();
    CookieJar cookieJar = cookies.ToCookieJar();
}

public class Cookie
{
    public int size;
}

public static class CookieExtensions
{
    public static CookieJar ToCookieJar(this IEnumerable<Cookie> list)
    {
        return new CookieJar(list);
    }
}