Domanda

Devo rappresentare diversi tipi di documenti in un ordine logico. Quindi ho un elenco di oggetti con ID. Devo fare un confronto che ordina questi oggetti con una regola "manuale". L'ordine per ID deve essere 2,32,5,12,8,43 ... e così via.

Uso Linq

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

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

Come fare un tale paragone?

È stato utile?

Soluzione

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));
    }
}

Se X e Y possono essere al di fuori della tua lista conosciuta, dovrai comunque aggiungere controlli e gestire tali casi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top