У меня есть объект, который на самом деле является списком. У меня строка, что тип элемента, но я не знаю, как передать объект в список? Вот какой код изображает мою проблему.Как передать объект в список
class Data
{
public int ID { get; set; }
public List<double> Values { get; set; }
}
static void Main(string[] args)
{
Data d = new Data() { ID = 69, Values = new List<double>() };
d.Values.Add(1.0);
d.Values.Add(2.0);
PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(Data));
var propInfo = typeof(Data).GetProperties();
foreach (var p in propInfo)
{
var Value = p.GetValue(d, null);
var Type = p.PropertyType;
if (Type.IsGenericType && Type.GetGenericTypeDefinition() == typeof(List<>))
{
// get the element type of a list
var ElementType = Value.GetType().GetProperty("Item").PropertyType;
// how to cast to List< "ElementType" > ???
}
else
{
types.Add(Type.FullName);
}
}
}
Что вы собираетесь делать с этим? –
Кажется немного бессмысленным приведение к типу List, который вы приобретаете динамически - поскольку ваш код (статический) не может использовать эту дополнительную информацию о типе. Если вы хотите получить доступ к данным в виде списка, я бы предложил листинг в System.Collections.IList. –