Welche dieser Lösungen wird bevorzugt?C# Linq-Anweisungen oder eine Foreach() für die Summierung von Teilmengen?
Für eine Liste:
List<ExampleInfo> exampleList = new List<ExampleInfo>();
public class ExampleInfo
{
internal ExampleInfo()
{ }
/* Business Properties */
public int Id { get; set; }
public string Type { get; set; }
public decimal Total { get; set; }
}
Ich wünsche Teilsumme den 'Total' Wert basierend auszusteigen.
Option 1:
var subtotal1 = exampleList.Where(x => x.Type == "Subtype1").Sum(x => x.Total);
var subtotal2 = exampleList.Where(x => x.Type == "Subtype2").Sum(x => x.Total);
Option 2:
decimal subtotal1 = 0m;
decimal subtotal2 = 0m;
foreach (ExampleInfo example in exampleList)
{
switch (example.Type)
{
case "Subtype1":
subtotal1 += example.Total;
break;
case "Subtype2":
subtotal2 += example.Total;
break;
default:
break;
}
}
Die Liste wird < 10 Stück in den meisten Fällen sein.
Bearbeiten: Chris hob einen sehr guten Punkt, den ich nicht erwähnt habe. Das Programm verwendet bereits .NET Framework 3.5 SP1, daher ist Kompatibilität hier nicht wichtig.
Genau das, was ich zur gleichen Zeit tippte :) –
Ich habe gerade das funktionale Äquivalent eingegeben –