заполнение словаря <> источником IEnumerable <> - PullRequest
8 голосов
/ 08 марта 2011

У меня есть приложение 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 в другой. Есть предложения?

Спасибо, PaulH

1 Ответ

19 голосов
/ 08 марта 2011
return source.ToDictionary(item => item.ID, item => item.Text);
...