public delegate T EsriIndexerItemDelegate<T,T1>(T1 esriEnumObject,int index);         public static List<T> EsriIndexerToList<T, T1>(T1 esriEnumObject, int count, EsriIndexerItemDelegate<T, T1> del)         {             List<T> list;             list = new List<T>(/*count*/);             for (int j = 0; j < count; j++)             {                 var field =  del(esriEnumObject,j);                 list.Add(field);             }             return list;         } 
Sample usage
 List<IField> fields1 = EsriIndexerToList(srcFclass.Fields, srcFclass.Fields.FieldCount, (fields, index) => fields.get_Field(index));
 
Hopefully this is useful..