Ordina un elenco di oggetti in base al valore bool [duplicato]
Chiamando il mio servizio ho ricevuto un elenco di oggetti. questo è il mio schema oggetto:
class MyCard {
final String number;
final String name;
final String available;
final bool isOwn;
const MyCard({
@required this.number,
@required this.name,
@required this.available,
@required this.isOwn,
});
}
Voglio ordinare la mia lista in base a isOwn == true. Quindi, per utilizzare list.sort:
myCards.sort((a, b) => a.isOwn - b.isOwn);
Questa sintassi non è per dart !! come posso fare con il flutter?
Risposte
Secondo questa risposta ho ottenuto il risultato giusto :
Puoi definire la tua funzione di confronto per bool e passarla al metodo di ordinamento di List.
Esempio con booleani come elenco bool:
booleans.sort((a, b) {
if(b) {
return 1;
}
return -1;
});
Questo esempio indica al metodo di ordinamento che gli elementi veri dovrebbero essere ordinati più in alto degli elementi falsi.
Penso che tu possa implementare Comparable dalla classe MyCard e sovrascrivere il metodo compareTo di cui hai bisogno e usarlo.
Puoi dare un'occhiata a quell'esempio.
https://www.woolha.com/tutorials/dart-sorting-list-with-comparator-and-comparable