ArrayList arrayList = new ArrayList { new { ID = "119", Name = "csdn" } };
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(arrayList[0]);
PropertyDescriptor pdID = pdc.Find("ID", true);
PropertyDescriptor pdName = pdc.Find("Name", true);
for (int i = 0; i < 5000 * 100000; i++)
{
var item = arrayList[0];
var id = pdID.GetValue(item);
var name = pdName.GetValue(item);
}