Voglio ordinare un elenco di oggetti in C# da molti campi, non solo da uno. Ad esempio, supponiamo Ho una classe denominata X con due attributi, A e B, e ho i seguenti oggetti, in questo ordine:Ordina un elenco (C#) da molti campi?
object1 => A = "a", B = "h"
oggetto2 => a = "a", B = "c"
oggetto3 => a = "b", B = "x"
object4 => a = "b", B = "b"
e voglio ordinare l'elenco per un attributo prima, e quando sono uguali, per elemento B, quindi l'ordine sarebbe:
" "a" c"
"a" "h"
"b" "b"
"b" "x"
Per quanto ne so, il metodo di ordine OrderBy da un parametro.
Domanda: Come posso ordinare un elenco C# da più di un campo?
La ringrazio molto
Questo non li ha ordinati per me? Cosa mi manca? Docs.OrderBy (o => o.AcctNum) .ThenBy (o => o.DocDate); –
È possibile che si stia utilizzando un .net precedente. Controlla questa risposta: http://stackoverflow.com/questions/289010/c-sharp-list-sort-by-x-then-y/289040#289040. –
Per i posteri: OrderBy non ordina la raccolta originale, restituisce un IOrderedEnumerable, quindi è necessario assegnare i risultati di OrderBy a una variabile. per esempio. customers = customers.OrderBy (c => c.Surname) .ThenBy (c.Forename) .ToList(); –
CptCoathanger