отсортировать коллекцию, которую я не знаю, какой у нее тип - PullRequest
2 голосов
/ 27 июля 2010

Есть ли способ в .NET, чтобы я мог отсортировать свою коллекцию, когда я не знаю, какие типы объектов во время выполнения я передам в эту коллекцию, а также, избегая отражения.

какие-либо мысли?

Ответы [ 2 ]

5 голосов
/ 27 июля 2010

Вам нужен какой-то способ сравнения элементов.Обычным способом является запрос IComparable:

class MyCollection<T> where T : IComparable<T>
{
}

или использование IComparer для метода сортировки или конструктора:

class MyCollection<T> // where T : IComparable<T>
{
    void Sort(IComparer<T> comparer) 
    {
        if  (comparer.Compare(a, b) > 0) { ... }
    }
}
1 голос
/ 27 июля 2010

Почему вы не можете использовать коллекцию ArrayList?

ArrayList list = new ArrayList();
list.Add("R");
list.Add("B");
list.Add("G");
list.Sort();
//produces "B","G","R"

list.Clear();
list.Add(100);
list.Add(10);
list.Add(9);
list.Sort();
//produces 9,10,100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...