Сортировка коллекции объектов обобщенного класса - C# (192151)

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

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

Доброго времени суток) Столкнулся с такой проблемой: не получается отсортировать коллекцию. Необходимо, чтобы коллекция объектов MyGeneric<T> сортировалась по тому же правилу как и объекты Т. п.с. Коллекция объекты Т сортируется, а при MyGeneric<T> вылетает exception, хотя в данном примере это всего лишь обертка. Вот накидал примерчик на list.Sort() краш, помогите пожалуйста разобраться. Спасибо!)
    class MyGeneric<T> : IComparable<T> where T : struct, IComparable<T>
    {
        public T Property { get; set; }
 
        public int CompareTo(T o)
        {
            return Property.CompareTo(o);
        }
    }
 
    struct MyType : IComparable<MyType>
    {
        public int value;
 
        public int CompareTo(MyType o)
        {
            return value.CompareTo(o.value);
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            List<MyGeneric<MyType>> list = new List<MyGeneric<MyType>>();
            for (int i = 10; i > 0; i--)
            {
                MyType ii = new MyType() { value = i };
                MyGeneric<MyType> iii = new MyGeneric<MyType>() { Property = ii};
                list.Add(iii);
            }
            foreach (var c in list)
                Console.WriteLine(c.Property.value);
            list.Sort();
            foreach (var c in list)
                Console.WriteLine(c.Property.value);
        }
    }
Ребят, пожалуйста очень нужно..

Решение задачи: «Сортировка коллекции объектов обобщенного класса»

textual
Листинг программы
    class MyGeneric<T> : IComparable<MyGeneric<T>> where T : struct, IComparable<T>
    {
        public T Property { get; set; }
 
        public int CompareTo(MyGeneric<T> o)
        {
            return Property.CompareTo(o.Property);
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

7   голосов , оценка 4.143 из 5
Похожие ответы