Преобразовать список в список

#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. Спасибо, что работает.