既存の所蔵のリストがあり、別の所蔵のリストに結合したいと考えています。foreach と for ループを使用するのが悪い方法であることはわかっていますが、LINQ を使用してこれを削減する良い方法は考えられません。
private void CombineHoldings(List<Holding> holdingsToAdd, ref List<Holding> existingHoldings)
{
foreach (Holding holdingToAdd in holdingsToAdd)
{
Boolean found = false;
for (int i = 0; i < existingHoldings.Count; i++)
{
if (existingHoldings[i].Sector == holdingToAdd.Sector)
{
found = true;
existingHoldings[i].Percentage += holdingToAdd.Percentage;
}
}
if (!found)
existingHoldings.Add(holdingToAdd);
}
foreach (Holding holding in existingHoldings)
holding.Fund = "Combined Funds";
}