Come rappresentare diversi tipi di documenti in un ordine logico
-
28-10-2019 - |
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?
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