Сортировка коллекции объектов обобщенного класса - C# (192158)
Формулировка задачи:
Доброго времени суток)
Столкнулся с такой проблемой: не получается отсортировать коллекцию.
Необходимо, чтобы коллекция объектов 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> other) { return this.Property.CompareTo(other.Property); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д