オブジェクトのリストをブール値で並べ替える[重複]
Aug 21 2020
私のサービスを呼び出すことによって、私はオブジェクトのリストを受け取りました。これは私のオブジェクトスキーマです:
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,
});
}
isOwn == trueに従ってリストを並べ替えたいので、list.sortを使用するには:
myCards.sort((a, b) => a.isOwn - b.isOwn);
この構文はダーツ用ではありません!! フラッターはどうすればいいですか?
回答
1 sayreskabir Aug 21 2020 at 19:03
この答えによると、私は正しい結果を得ました:
boolの独自の比較関数を定義し、それをListのsortメソッドに渡すことができます。
ブールリストとしてブールを使用した例:
booleans.sort((a, b) {
if(b) {
return 1;
}
return -1;
});
この例は、true要素をfalse要素よりも高くソートする必要があることをsortメソッドに指示しています。
AlperenEkin Aug 21 2020 at 19:12
MyCardクラスからComparableを実装し、必要に応じてcompareToメソッドをオーバーライドして使用できると思います。
あなたはその例を見ることができます。
https://www.woolha.com/tutorials/dart-sorting-list-with-comparator-and-comparable