首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DeepCopy A SortedDictionary

DeepCopy A SortedDictionary
EN

Stack Overflow用户
提问于 2010-11-16 08:57:10
回答 1查看 2.5K关注 0票数 1

我有以下几点:

代码语言:javascript
复制
SortedDictionary<int, SortedDictionary<int, VolumeInfoItem>>

我想要深度复制。

VolumeInfoItem是以下类:

代码语言:javascript
复制
[Serializable]
public class VolumeInfoItem
{
    public double up = 0;
    public double down = 0;
    public double neutral = 0;
    public int dailyBars = 0;

}

我创建了以下扩展方法:

代码语言:javascript
复制
public static T DeepClone<T>(this T a)
{
    using (MemoryStream stream = new MemoryStream())
    {
        BinaryFormatter formatter = new BinaryFormatter();
        formatter.Serialize(stream, a);
        stream.Position = 0;
        return (T)formatter.Deserialize(stream);
    }
}

我想不出如何让deepCopy正常工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-16 09:18:15

您的代码看起来像这个问题的答案之一:How do you do a deep copy of an object in .NET (C# specifically)?

但是,既然您知道字典内容的类型,就不能手动完成吗?

代码语言:javascript
复制
// assuming dict is your original dictionary
var copy = new SortedDictionary<int, SortedDictionary<int, VolumeInfoItem>>();
foreach(var subDict in dict)
{
    var subCopy = new SortedDictionary<int, VolumeInfoItem>();
    foreach(var data in subDict.Value)
    {
        var item = new VolumeInfoItem
                   {
                       up = data.Value.up,
                       down = data.Value.down,
                       neutral = data.Value.neutral,
                       dailyBars = data.Value.dailyBars
                   };
        subCopy.Add(data.Key, item);
    } 
    copy.Add(subDict.Key, subCopy);
}

在我的脑海中编译,所以一些语法错误可能已经溜走了。也可以用一些LINQ使它更紧凑一些。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4190303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档