Как представлять разные типы документов в логическом порядке - PullRequest
0 голосов
/ 16 июня 2011

Мне нужно представлять разные типы документов в логическом порядке.Итак, у меня есть список объектов с идентификаторами.Мне нужно сделать компаратор, который упорядочивает эти объекты по «ручному» правилу.Заказ по идентификатору должен быть 2,32,5,12,8,43 ... и так далее.

Я использую LINQ

documents.OrderBy(doc=> doc.Id, new DocumentsComparer<int>());

public class DocumentsComparer<T> : IComparer<int>
{
    ...???...
}

Как сделать такой компаратор?

1 Ответ

1 голос
/ 16 июня 2011
public class DocumentsComparer<T> : IComparer<int>
{
    private List<int> order = new List<int>{2, 32, 5, 12, 8, 43};
    public int Compare(int x, int y)
    {
        return order.IndexOf(x).CompareTo(order.IndexOf(y));
    }
}

если x и y могут быть за пределами вашего известного списка, вам придется добавить проверки для этого и обработать эти случаи, однако.

...