Универсальные шаблоны - C# (188327)

Узнай цену своей работы

Формулировка задачи:

Добрый день, вопрос касательно универсальных шаблонов, типов. Как мне внутри моего универсального шаблона указать, что T - является ValueType? Это нужно для того чтобы можно было нормально использовать LINQ запросы, такие например как Average(). И еще, хорошо бы предусмотреть, что T может быть Int16, а LINQ с этим типом не работает. Вот чего мне пока удалось достичь:
        public void Func<T>(List<T> _data) where T : struct
        {
            if (Enum.IsDefined(typeof(TypeCode), typeof(T).Name) == false)
            {
                return;
            }
            var _max = _data.Max();
            // var _average = _data.Average();
        }
 
        public void f()
        {
            List<double> _data = new List<double>();
            Random _random = new Random();
            for (int i = 0; i < 100; i++)
                _data.Add(_random.Next(0, 101));
            Func<double>(_data);
        }

Решение задачи: «Универсальные шаблоны»

textual
Листинг программы
public <T extends Number> void Func(List<T> _data)

Оцени полезность:

11   голосов , оценка 3.727 из 5