Welche dieser Lösungen ist vorzuziehen?
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 möchte Zwischensummen auf der Grundlage des Werts "Gesamt" erhalten.
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 in den meisten Fällen weniger als 10 Punkte umfassen.
Bearbeiten: Chris hat einen sehr guten Punkt angesprochen, den ich nicht erwähnt habe. Das Programm verwendet bereits .NET Framework 3.5 SP1, so dass die Kompatibilität hier keine wichtige Rolle spielt.