Flutter:列出地图组合

Flutter : Lists map combine

我列出了三个列表,第一个是免费服务器,第二个是付费服务器,第三个列表包括两者。 问题是当他添加第三个列表中的列表时,他是按顺序添加的 换句话说,他添加了上面的整个第一个列表和下面的第二个列表 我想要一种方法来组合这两个列表并根据名称、编号或任何其他内容排列它们。重要的是不是按照同一个list排列的(第一个在上面,第二个在下面)

您可以在 'allservs' 上使用排序方法。这是一个工作示例,它根据 'cnumber':

对组合列表进行排序
var servers = List.from([
  {
    'name': 'Singapore',
    'flag': 'assets/images/flags/singapore.png',
    'cnumber': 7,
    'isvip': false,
  },
  {
    'name': 'Singapore',
    'flag': 'assets/images/flags/singapore.png',
    'cnumber': 2,
    'isvip': false,
  },
  {
    'name': 'Singapore',
    'flag': 'assets/images/flags/singapore.png',
    'cnumber': 1,
    'isvip': false,
  },
]);

var newServers = List.from([
  {
    'name': 'Singapore',
    'flag': 'assets/images/flags/singapore.png',
    'cnumber': 7,
    'isvip': false,
  },
  {
    'name': 'Singapore',
    'flag': 'assets/images/flags/singapore.png',
    'cnumber': 12,
    'isvip': false,
  },
  {
    'name': 'Singapore',
    'flag': 'assets/images/flags/singapore.png',
    'cnumber': 3,
    'isvip': false,
  },
]);

get allServers => (List.from(newServers) + List.from(servers))
  ..sort((a, b) => (a['cnumber'] >= b['cnumber']) ? 1 : -1);

void main() {
  print(allServers);
}

最简单的方法是这样做:

 var allServers = [...servers, ...newsServers ];

例如,您可以在 DartPad 中看到此示例:

image

这将导致输出:

[{name: Singapore}, {name1: Singapore1}]