c# 在用反射对类赋值时 不知道枚举的类型 整形数组如何给枚举数组赋值
时间: 2023-09-14 17:09:31 浏览: 93
C#实现利用反射简化给类字段赋值的方法
在使用反射对类赋值时,可以使用 Enum.Parse 方法将整数转换为枚举值。具体来说,可以使用以下代码:
```
// 获取枚举类型
Type enumType = typeof(MyEnum);
// 获取整型数组
int[] intArray = new int[] { 1, 2, 3 };
// 创建枚举数组
Array enumArray = Array.CreateInstance(enumType, intArray.Length);
// 遍历整型数组,将每个整数转换为枚举值并赋值给枚举数组
for (int i = 0; i < intArray.Length; i++)
{
object enumValue = Enum.Parse(enumType, intArray[i].ToString());
enumArray.SetValue(enumValue, i);
}
// 将枚举数组赋值给对象的属性或字段
myObject.MyEnumArray = (MyEnum[])enumArray;
```
这里假设 MyEnum 是你的枚举类型,myObject 是你要赋值的对象,MyEnumArray 是对象的属性或字段。需要注意的是,如果整型数组中有值不能转换为枚举值,会抛出异常,需要进行异常处理。
阅读全文