부울 값으로 개체 목록 정렬 [중복]

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);

이 구문은 다트 용이 아닙니다 !! Flutter로 어떻게 할 수 있습니까?

답변

1 sayreskabir Aug 21 2020 at 19:03

이 답변 에 따르면 올바른 결과를 얻었습니다 .

bool에 대한 자신의 비교 함수를 정의하고 List의 정렬 방법에 전달할 수 있습니다.

부울 목록으로 부울을 사용한 예 :

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