如何对实例类列表进行排序取决于其在飞镖或颤振中的属性[重复]
Posted
技术标签:
【中文标题】如何对实例类列表进行排序取决于其在飞镖或颤振中的属性[重复]【英文标题】: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 升序对列表进行排序
【问题讨论】:
【参考方案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以上是关于如何对实例类列表进行排序取决于其在飞镖或颤振中的属性[重复]的主要内容,如果未能解决你的问题,请参考以下文章