【发布时间】:2014-12-12 20:05:36
【问题描述】:
我有一个输入字符串,它由文件接收。它包含一些值,用 ; 分隔 例如。 1;2;3
我想将其转换为列表。该属性是通过反射检索的,所以我没有任何修复列表类型。
简而言之:作为输入,我有一个 PropertyInfo (PropertyType) 和一个字符串值。我想得到一个“PropertyType”类型的列表作为输出。
我想做类似的事情
private List<object> GetAsList(Type propertyType, string value)
{
List<object> list = new List<object>();
var items = value.Split('|');
foreach (var item in items)
{
list.Add(Convert.ChangeType(item, propertyType.GetGenericArguments().Single()));
}
return list;
}
这里的问题是,我不能给 List 分配一个 List()。我可以使用这样的东西:
if(propertyType == typeof(List<Int32>)
list = new List<Int32>();
else if(propertyType == typeof(List<Int64>)
list = new List<Int64>();
[...]
在我看来,这不是一个好的解决方案。你知道如何解决这个问题吗?
【问题讨论】:
-
怎么样
List<object>你可以用它