Ich möchte ein Stück Code beschleunigen, das zwei SortedLists
miteinander verbindet.C# Merge Two SortedLists (Union?)
C# 4.0 generic 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);
}
Ich denke, dass eine Vereinigung statt die foreach
Schleife schneller sein würde, aber ich weiß nicht, wie eine Gewerkschaft auf einem SortedList
zu implementieren. Wenn mir jemand dabei helfen könnte, würde ich es begrüßen.
Auch, wenn es eine bessere Möglichkeit gibt, dies insgesamt zu tun, bin ich offen für Vorschläge.
Nur eine Idee, aber nach [diese Antwort] (http://StackOverflow.com/a/1754080/551322), könnte es hilfreich sein, wenn Sie Input-Sammlung sortieren. – nrodic
Danke, die Daten, die eingegeben werden, kommen aus sortierten Listen, so dass sie es vorsortiert machen sollten - mit Blick darauf, obwohl ich vielleicht zu einem SortedDictionary wechseln möchte. –
Warum möchten Sie diesen Code beschleunigen? Funktioniert es schlecht? – Enigmativity