我有一个Enum
需要进入Array
Nullable
:
StatusType?[] statusTypes = null; //Array to fill
我试图像这样填写statusTypes
:
statusTypes = (StatusType?[])Enum.GetValues(typeof(StatusType))
我收到以下错误:
System.InvalidCastException:'无法转换类型为' x.Entities.Enums.StatusType []'的对象输入' System.Nullable`1 [x.Entities.Enums.StatusType] []'。'
如何使用Enum?[]
填充Enum[]
?我确定这是一个简单的解决办法,但我现在已经被它捣乱了一段时间。谢谢。
答案 0 :(得分:3)
使用LINQ的Cast<T>()
扩展方法并提供目标类型:
statusTypes = Enum.GetValues(typeof(StatusType)).Cast<StatusType?>().ToArray();
答案 1 :(得分:0)
你不能只是施放数组。类型不兼容。您可以使用Array.ConvertAll
进行转换:
Array.ConvertAll((StatusType[])Enum.GetValues(typeof(StatusType)), x => (StatusType?)x);