排序列表dart与2个条件的固定邮件

4c8rllxm  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(86)

这段代码的工作方式是对固定消息和消息进行排序

snapshot.data?.sort((a, b) {
  if(b.c.messagePinned != null) {
    if(b.c.messagePinned!) {
      return 1;
    }
  }
  return -2;
});

字符串
我想分两个阶段来做。我想在顶部的固定消息和最后消息日期排序。下面的代码没有给予我想要的

snapshot.data?.sort((a, b) {
  if(b.c.messagePinned != null) {
    if(b.c.messagePinned!) {
      return b.c.lastMessageTime.compareTo(
          a.c.lastMessageTime);
      }
   }
   return -2;
});

7xllpg7q

7xllpg7q1#

我认为你的比较是反向的钉的情况下。您要使用return a.c.lastMessageTime.compareTo(b.c.lastMessageTime);
比较B和a会导致日期向后排序。
顺便说一句,您还可以合并if语句。
if(b.c.messagePinned != null && b.c.messagePinned!) {
如果第一个条件为假,则不会检查第二个条件。

相关问题