首页 > 解决方案 > 我可以排序列表吗在飞镖

问题描述

我可以List<dynamic>在飞镖中排序吗?

List<dynamic> list= [9,10,'Plus One'];
list.sort();
print(list);

我希望结果像 9,10,'Plus One' 或 'Plus One', 9, 10

标签: flutterdart

解决方案


您只需要提供一个回调来List.sort按您想要的方式订购异构类型。例如,假设你的异构List只包含ints 和Strings,你可以这样做:

  List<dynamic> list = [9, 10, 'Plus One'];
  list.sort((a, b) {
    if ((a is int && b is int) || (a is String && b is String)) {
      return a.compareTo(b);
    }

    if (a is int && b is String) {
      return -1;
    } else {
      assert(a is String && b is int);
      return 1;
    }
  });

  print(list);

如果您需要潜在地处理其他类型,则需要适当地调整回调。


推荐阅读