非泛型类中的泛型方法?

时间:2009-01-08 08:45:22

标签: c# generics

我确定我以前做过这个,但找不到它的任何例子!哎呀...

例如,我想将IList<T>转换为BindingList<T>

public class ListHelper
{
    public static BindingList<T> ToBindingList(IList<T> data)
    {
        BindingList<T> output = new BindingList<T>();

        foreach (T item in data)
            output.Add(item);

        return output;
    }
}

3 个答案:

答案 0 :(得分:34)

ToBindingList <T> (...)

public class ListHelper
{
    public static BindingList<T> ToBindingList<T>(IList<T> data)
    {
        BindingList<T> output = new BindingList<T>();

        foreach (T item in data)
        {
            output.Add(item);
        }

        return output;
    }
}

答案 1 :(得分:11)

这不会更简单吗?

public static class Extensions
{
    public static BindingList<T> ToBindingList<T>(this IList<T> list)
    {
        return new BindingList<T>(list);
    }
}

这很简单,我们不需要扩展方法......

我错过了什么吗?

答案 2 :(得分:7)

你可以通过扩展方法做到这一点,它会更好。

public static class Extensions
{
    public static BindingList<T> ToBindingList<T>(this IList<T> list) 
    {
        BindingList<T> bindingList = new BindingList<T>();

        foreach (var item in list)
        {
            bindingList.Add(item);
        }

        return bindingList;
    }
}