private void TranslateToILArray(ILGenerator il, Type etype){
int n = this.elements.count;
ConstantWrapper.TranslateToILInt(il, n);
TypeCode ecode = Type.GetTypeCode(etype);
il.Emit(OpCodes.Newarr, etype);
for (int i = 0; i < n; i++){
il.Emit(OpCodes.Dup);
ConstantWrapper.TranslateToILInt(il, i);
if (etype.IsValueType && !etype.IsPrimitive)
il.Emit(OpCodes.Ldelema, etype);
this.elements[i].TranslateToIL(il, etype);
Binding.TranslateToStelem(il, etype);
}
}