@Dobriy_Chelovek3343

Как сделать “универсальную” сортировку?

Вообщем я тут разбираюсь с quicksort и вот когда я начал писать я столкнулся с проблемой статической типизации. Алгоритм для int double long и т.д. ничем не отличается но из за разностей типов нужно плодить перегрузки и следовательно идёт огромный дубляж кода.Есть ли какой-то способ избежать этого?
P.S.
dynamic не подходит потому что производительность уходит в небытие.
  • Вопрос задан
  • 286 просмотров
Решения вопроса 1
2chevskii
@2chevskii
Если бы каждый мог в поиск, тостер бы вымер.
Если я правильно вас понял, то можно воспользоваться ограничением универсального типа до IComparable, его реализуют все примитивы.
public IEnumerable<T> Sort<T>(IEnumerable<T> collection) where T : IComparable
		{
			foreach(var item in collection)
			{
				var result = item.CompareTo(new object()/* <- объект для сравнения */);
				// и так далее
			}
		}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
zagayevskiy
@zagayevskiy
Android developer at Yandex
Generics
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы