【发布时间】:2011-07-11 07:17:56
【问题描述】:
我有一个 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 源复制到另一个源。有什么建议吗?
谢谢, 保罗H
【问题讨论】:
-
您的
Create方法似乎很荒谬;它创建一个名为c的空MyCollection<T>,对其参数source的元素进行处理,然后返回仍然为空的c。假设IMyData有一个Add方法,我会为您提供怀疑的好处。 -
@Domenic - 你是对的。我抄的很烂。我已经纠正了。不过,您的答案正是我想要的。谢谢。
标签: c# collections dictionary ienumerable