2011-03-08 48 views
7

我有一個VS2008 C#.NET 3.5應用程序,我想創建一個給定這些對象的IEnumerable列表的對象的哈希表。用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

+0

你'Create'方法似乎是荒謬的;它會創建一個名爲'c'的空'MyCollection ',對其參數'source'的元素進行操作,然後返回仍然爲空的'c'。假設'IMyData'有一個'Add'方法,我會給你帶來懷疑的好處。 – Domenic 2011-03-08 17:41:48

+0

@Domenic - 你是對的。我嚴重拷貝了它。我糾正了它。雖然你的答案是我正在尋找的。謝謝。 – PaulH 2011-03-08 19:07:37

回答

18
return source.ToDictionary(item => item.ID, item => item.Text); 
相關問題