Обобщенный метод сортировки массива - C#

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

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

Что-то не пойму, в чем проблема. Точнее, вижу, что мне пишет VS, но не пойму, что делаю не так. Нужно, чтобы метод сортировки принимал массив типа <T> и возвращал тоже типа <T>. Ошибку указал напротив той строчки, где она высвечивается. Вот код сортировки:
public static T[] BubbleSort<T>(T[] a) 
        {
            for (int i = 0; i < a.Length; i++)
            {
                for (int j = i + 1; j < a.Length; j++)
                {
                    if (a[j] < a[i])  //Operator '<' cannot be applied to operands of type 'T' and 'T'
                    {
                        var temp = a[i]; 
                        a[i] = a[j];
                        a[j] = temp;
                    }
                }
            }
            return a;
        }
Можно ли как-то создать подобный метод?

Решение задачи: «Обобщенный метод сортировки массива»

textual
Листинг программы
        public static void BubbleSort<T>(T[] a) where T : IComparable<T>
        {
            for (int i = 0; i < a.Length; i++)
            {
                for (int j = i + 1; j < a.Length; j++)
                {
                    if (a[j].CompareTo(a[i]) < 0)
                    {
                        var temp = a[i];
                        a[i] = a[j];
                        a[j] = temp;
                    }
                }
            }
        }

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


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

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

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