2つをマージするコードの一部を高速化することを目指してい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);
}
ループの代わりにユニオンのforeach
方が速いと思いますが、にユニオンを実装する方法がわかりませんSortedList
。誰かがそれを手伝ってくれるなら、私はそれをいただければ幸いです。
また、これを全体的に行うためのより良い方法があれば、私は提案を受け入れます。