|
@@ -572,7 +572,7 @@ namespace InABox.Core
|
|
|
return Guid.Empty;
|
|
|
}
|
|
|
|
|
|
- if (value is IEnumerable<object> objList)
|
|
|
+ if (value is IEnumerable<object?> objList)
|
|
|
{
|
|
|
if(type == typeof(Guid))
|
|
|
{
|
|
@@ -580,7 +580,17 @@ namespace InABox.Core
|
|
|
}
|
|
|
else if (type.IsArray)
|
|
|
{
|
|
|
- return objList.Select(x => ChangeType(x, type.GetElementType())).ToArray();
|
|
|
+ var elementType = type.GetElementType();
|
|
|
+ var collection = value as ICollection<object?> ?? objList.ToList();
|
|
|
+
|
|
|
+ var arr = Array.CreateInstance(elementType, collection.Count);
|
|
|
+ var i = 0;
|
|
|
+ foreach(var val in collection)
|
|
|
+ {
|
|
|
+ arr.SetValue(ChangeType(val, elementType), i);
|
|
|
+ ++i;
|
|
|
+ }
|
|
|
+ return arr;
|
|
|
}
|
|
|
}
|
|
|
|