John Paul Jones
John Paul Jones

Reputation: 700

Generic method in a non-generic class?

I'm sure I've done this before, but can't find any example of it! Grrr...

For example, I want to convert an IList<T> into a 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;
    }
}

Upvotes: 22

Views: 25720

Answers (3)

Sander
Sander

Reputation: 26374

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

Upvotes: 35

bruno conde
bruno conde

Reputation: 48255

Wouldn't this be simpler?

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

It's so simple that we don't need an extension method ...

Am I missing something?

Upvotes: 11

Ali Ers&#246;z
Ali Ers&#246;z

Reputation: 16086

You can do this by extension method and it would be better.

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

Upvotes: 7

Related Questions