2つをマージするコードを高速化しようとしていますSortedLists
。ジェネリックSortedList
C#2つのSortedListsを結合する(Union?)
C#4.0:私は労働組合の代わりforeach
ループがより速くなるだろうと考えていますが、私は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);
}
。誰かが私を助けてくれたら、私はそれを感謝します。
さらに、この全体的なやり方を改善する方法がある場合は、私は提案を公開しています。
ちょっと考えましたが、[この回答](http://stackoverflow.com/a/1754080/551322)によれば、入力コレクションを並べ替えると役立ちます。 – nrodic
ありがとう、ソートされたリストからデータが入力されているので、SortedDictionaryに切り替えることはできますが、それを見て、それを見分ける必要があります。 –
なぜこのコードをスピードアップするのですか?それはパフォーマンスが悪いですか? – Enigmativity