【问题标题】:How to sort List of instance class depend on its property in dart or flutter [duplicate]如何对实例类列表进行排序取决于其在飞镖或颤振中的属性[重复]
【发布时间】:2021-11-18 19:42:44
【问题描述】:

我有一个List<Contact>,其中的类联系人如下所示:

class Contact {
    Contact({
        this.id,
        this.name,
        this.phone,
        this.job,
        this.company,
        this.image,
        this.email,
    });

    int? id;
    String? name;
    String? phone;
    String? job;
    String? company;
    String? image;
    String? email;

}

问题是,如何通过比较 Contact.name 对 List 进行排序? 因为我想按 A-Z 升序对列表进行排序

【问题讨论】:

    标签: list flutter class sorting dart


    【解决方案1】:

    您可以将比较函数传递给 List.sort。

    someObjects.sort((a, b) => a.someProperty.compareTo(b.someProperty));

    或列表 mList = (mList..sort()).reversed.toList();

    您可以从此链接Sort a list of objects in Flutter (Dart) by property value获得帮助

    【讨论】:

    • 好的,但我试过了,结果是这样的错误参数类型'String?'不能分配给参数类型“字符串”。
    • 我该如何解决这个错误?
    • @Dedi 您的.sort 回调需要检查null。例如:list.sort((a, b) { final aProperty= a.property; final bProperty = b.property; if (aProperty != null && bProperty != null) { return aProperty.compareTo(bProperty); } else if (aProperty == bProperty) { return 0; } else if (aProperty == null) { return -1; } else { return 1; }).
    • 另外,如果您可以使用空字符串而不是null,那会简单得多,然后您就不需要处理String?
    • 感谢您的解释@jamesdin
    猜你喜欢
    • 2019-11-21
    • 2021-10-07
    • 1970-01-01
    • 2021-11-13
    • 2021-01-28
    • 2020-08-12
    • 1970-01-01
    • 2019-12-29
    • 2021-01-24
    相关资源
    最近更新 更多