如何动态解析数组字符串到另一种类型?



我试图根据属性类型解析数组的字符串到任何类型(int, date, double)。但是,下面的代码失败了。有人能帮帮忙吗?

string[] test = {"30", "40"}
var finalType = GetFinalType();
var objArr = test;
var arr = Array.CreateInstance(finalType, objArr.Length);
Array.Copy(objArr, arr, objArr.Length); -- Fails because its not able to convert "30" to 30

我尝试了另一个方法

MemberExpression member = Expression.Property(param, filter.Name);
var propertyType = ((PropertyInfo)member.Member).PropertyType;
var converter = TypeDescriptor.GetConverter(propertyType);
var arr = Array.ConvertAll(filter.Value, converter); // - Gives error that i have to specify the type

您可以使用Select来进行转换。这实际上是一个一个地迭代条目。

var numbers = array.Select(x => int.Parse(x)).ToArray();

或将其中的int.parse替换为GetFinalType()等