Подтвердить что ты не робот

Общий метод в не-общий класс?

Я уверен, что сделал это раньше, но не могу найти ни одного примера! Хмм...

Например, я хочу преобразовать 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;
    }
}
4b9b3361

Ответ 1

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;
    }
}

Ответ 2

Разве это не было бы проще?

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

Это так просто, что нам не нужен метод расширения...

Я что-то пропустил?

Ответ 3

Вы можете сделать это по методу расширения, и было бы лучше.

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;
    }
}