, foreach, , , , ?
, , Holdings List SortedList, T - . . , , int.
private void CombineHoldings(List<Holding> holdingsToAdd, SortedList<int,Holding> existingHoldings)
{
for (int i = 0; i < holdingsToAdd.Count; i++)
{
if (existingHoldings.ContainsKey(holdingsToAdd[i].Sector))
{
existingHoldings[holdingsToAdd[i].Sector].Percentage += holdingsToAdd[i].Percentage;
}
else
{
existingHoldings.Add(holdingsToAdd[i].Sector, holdingsToAdd[i]);
}
}
for (int i = 0; i < existingHoldings.Count; i++)
{
existingHoldings.Values[i].Fund = "Combined Funds";
}
}
O (m * log n + n), n - Holdings, m - holdingsToAdd. , existingHoldings , .
. / existingHoldings, SortedDictionary, (SortedList /)
: , LINQ , . , LINQ, holdingsToAdd, Holdings, Holdings, , Percentage, holdingsToAdd, existingHoldings, . - O (2 * m * log n + n). , .