填写字典<>使用IEnumerable<>资源

时间:2011-03-08 17:35:21

标签: c# collections 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源复制到另一个IEnumerable源。有什么建议吗?

谢谢, PaulH

1 个答案:

答案 0 :(得分:18)

return source.ToDictionary(item => item.ID, item => item.Text);