Questa è più una domanda accademica sulla performance di un realistico "cosa dovrei usare" ma sono curioso visto che non mi diletto molto su IL per vedere cosa è costruito e non ho un grande set di dati su mano per il profilo contro.Quale è più veloce in un ciclo: chiamando una proprietà due volte o memorizzando la proprietà una volta?
Così che è più veloce:
List<myObject> objs = SomeHowGetList();
List<string> strings = new List<string>();
foreach (MyObject o in objs)
{
if (o.Field == "something")
strings.Add(o.Field);
}
o:
List<myObject> objs = SomeHowGetList();
List<string> strings = new List<string>();
string s;
foreach (MyObject o in objs)
{
s = o.Field;
if (s == "something")
strings.Add(s);
}
tenere a mente che io non voglio davvero sapere l'impatto sulle prestazioni del string.Add (s) (come qualunque operazione debba essere eseguita non può essere realmente cambiata), solo la differenza di prestazioni tra l'impostazione di ogni iterazione (diciamo che s può essere qualsiasi tipo primitivo o stringa) i versi che chiamano il getter sull'oggetto ogni iterazione.
Perché stai chiedendo _us_? Hai scritto il codice. Prendi un cronometro, fallo un miliardo di volte in entrambi i modi, e poi saprai quale è più veloce. –