Ciao ragazzi, il mio problema è il seguente:

Ho una lista di oggetti con alcune proprietà, nulla di particolare, e l'esigneza di scorrere queste properietà con l'opzione di poter leggere il valore di queste proprietà secondo un indice ben definito. Ecco un esempio del codice

codice:
 
... 
public static List<obj> lista1 = new List<obj>();
obj ob1 = new obj();
ob1.quantum = 100;
ob1.peso = 80;
ob1.attrito = 1;
lista1.Add(ob1);
... 
lista1.Add(ob2);
...
lista1.Add(ob3);

foreach(PropertyInfo pi in typeof(obj).GetProperties())
{
    MessageBox.Show(pi.Name+": "+pi.GetValue(lista1[2], null));  //<--- Mi interessa il 2 oggetto e basta.
}
public class obj
{
    public int quantum{get; set;}
    public int peso{get;set;}
    public int attrito{get;set;}
}

Purtroppo però il sistema mi restituisce i valori delle proprietà dell'ultimo oggetto salvato come mai? Qualcuno può venire in mio soccorso, colgo l'occasione per ringraziare anticipatamente tutti.