オブジェクトのリストをブール値で並べ替える[重複]

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