C#合并两个SortedLists(Union?)

C#合并两个SortedLists(Union?),第1张

概述我想加快一段合并两个SortedLists的代码. C#4.0泛型SortedList:http://msdn.microsoft.com/en-us/library/ms132319(v=vs.100).aspx public Trait getTrait(decimal thisValue){ if (ParentStructure != null && ParentS 我想加快一段合并两个SortedLists的代码.

C#4.0泛型SortedList:http://msdn.microsoft.com/en-us/library/ms132319(v=vs.100).aspx

public Trait getTrait(decimal thisValue){           if (ParentStructure != null && ParentStructure.RankedTraits.Count > 0)    {        SortedList<decimal,Trait> tempTraits = this.RankedTraits;        // Improve here (union?)        foreach (keyvaluePair<decimal,Trait> kvp in (ParentStructure.RankedTraits))        {            if (!tempTraits.ContainsKey(kvp.Key))             {                 tempTraits.Add(kvp.Key,kvp.Value);             }        }        return _getTrait(tempTraits,thisValue);        }    }    return _getTrait(_rankTraits,thisValue);}@H_404_5@  

我认为联合而不是foreach循环会更快,但我不知道如何在SortedList上实现联合.如果有人可以帮助我,我会很感激.

此外,如果有更好的方法来做到这一点,我愿意接受建议.

@R_404_6120@ 我可以想到合并两个SortedList实例的唯一方法是将它们合并,然后转换为查找,然后抓取查找集合的第一个元素来创建字典.

我需要创建一个字典,因为SortedList只支持逐个添加.因此,唯一的另一种选择是将字典注入SortedList构造函数.

一句话:我认为你现在的代码是相当不错的. liNQ可以帮助将代码减少到大约2行(如果你是受虐狂,则可以使用一行).

SortedList<decimal,Traits> ListA = new SortedList<decimal,Traits>();SortedList<decimal,Traits> ListB = new SortedList<decimal,Traits>();ListA.Add(1m,new Traits { FIEldname = "One" });ListA.Add(2m,new Traits { FIEldname = "Two" });ListA.Add(3m,new Traits { FIEldname = "Three" });ListB.Add(1m,new Traits { FIEldname = "One" });ListB.Add(4m,new Traits { FIEldname = "Four" });ListB.Add(5m,new Traits { FIEldname = "Five" });var ListUnion = ListA.Union(ListB).Tolookup(k => k.Key,v => v.Value)                     .ToDictionary(k => k.Key,v => v.First());var ListMerged = new SortedList<decimal,Traits>(ListUnion);@H_404_5@                  总结       

以上是内存溢出为你收集整理的C#合并两个SortedLists(Union?)全部内容,希望文章能够帮你解决C#合并两个SortedLists(Union?)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1252499.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存