【问题标题】:filling a Dictionary<> with an IEnumerable<> source用 IEnumerable<> 源填充 Dictionary<>
【发布时间】: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&lt;T&gt;,对其参数source 的元素进行处理,然后返回仍然为空的c。假设IMyData 有一个Add 方法,我会为您提供怀疑的好处。
  • @Domenic - 你是对的。我抄的很烂。我已经纠正了。不过,您的答案正是我想要的。谢谢。

标签: c# collections dictionary ienumerable


【解决方案1】:
return source.ToDictionary(item => item.ID, item => item.Text);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2012-04-11
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2012-11-07
    • 2013-09-02
    相关资源
    最近更新 更多