заполнение Dictionary <> объектом IEnumerable <> источник

У меня есть приложение VS2008 C # .NET 3.5, в котором я хотел бы создать хэш-таблицу объектов с учетом списка IEnumerable этих объектов.

В основном это выглядит так:

public class MyCollection<T> : IEnumerable<T>
    where T: IMyData, new()
{
    private IDictionary<int, string> collection_ = new Dictionary<int, string>();

    // ...

    public void Add(T item)
    {
        collection_.Add(item.ID, item.Text);
    }

    public static MyCollection<T> Create(IEnumerable<T> source)
    {
        MyCollection<T> c = new MyCollection<T>();
        foreach(T item in source)
        {
            c.Add(item);
        }
        return c;
    }
}

Это работает, но мне интересно, нет ли лучшего способа копирования из одного источника IEnumerable в другой. Есть предложения?

Спасибо, 5, в котором я хотел бы создать хеш-таблицу объектов с учетом списка IEnumerable этих объектов.

В основном это выглядит так:

public class MyCollection<T> : IEnumerable<T>
    where T: IMyData, new()
{
    private IDictionary<int, string> collection_ = new Dictionary<int, string>();

    // ...

    public void Add(T item)
    {
        collection_.Add(item.ID, item.Text);
    }

    public static MyCollection<T> Create(IEnumerable<T> source)
    {
        MyCollection<T> c = new MyCollection<T>();
        foreach(T item in source)
        {
            c.Add(item);
        }
        return c;
    }
}

Это работает, но мне интересно, нет ли лучшего способа копирования из одного источника IEnumerable в другой. Есть предложения?

Спасибо, 5, в котором я хотел бы создать хеш-таблицу объектов с учетом списка IEnumerable этих объектов.

В основном это выглядит так:

public class MyCollection<T> : IEnumerable<T>
    where T: IMyData, new()
{
    private IDictionary<int, string> collection_ = new Dictionary<int, string>();

    // ...

    public void Add(T item)
    {
        collection_.Add(item.ID, item.Text);
    }

    public static MyCollection<T> Create(IEnumerable<T> source)
    {
        MyCollection<T> c = new MyCollection<T>();
        foreach(T item in source)
        {
            c.Add(item);
        }
        return c;
    }
}

Это работает, но мне интересно, нет ли лучшего способа копирования из одного источника IEnumerable в другой. Есть предложения?

Спасибо, PaulH

8
задан PaulH 8 March 2011 в 19:08
поделиться