#c# #dynamic #type-conversion
#c# #динамический #тип-преобразование
Вопрос:
Учитывая следующую функцию, как мне преобразовать из List<dynamic> back to List<T>
?
Строка var retval = (IEnumerable<T>)Convert.ChangeType(normalised, typeof(IEnumerable<dynamic>));
не работает. Я получаю исключение «объект должен реализовать IConvertible
«
public static IEnumerable<T> NormalizeZeroAndOne<T>(this IEnumerable<T> list)
{
var max = list.Max();
var min = list.Min();
T range = ((dynamic)max - (dynamic)min);
//var range = (max - min);
var normalised
= list.Select(i => ((dynamic)i - (dynamic)min) / range)
.ToList();
var retval = (IEnumerable<T>)Convert.ChangeType(normalised, typeof(IEnumerable<dynamic>));
return retval;
}
Комментарии:
1. Попробуйте
retval = normalised.Cast<T>();
2. Спасибо, что работает.