简体   繁体   English

Dart 中的多个过滤器列表

[英]Multiple filters list in Dart

I would need some help to filter a list of objects in a multiple way.我需要一些帮助来以多种方式过滤对象列表。 Let me explain, I have this list:让我解释一下,我有这个清单:

List<myObj> obj = [
    myObj(name: "Name 1", team: "Team 1", league: "League 1"),
    myObj(name: "Name 2", team: "Team 1", league: "League 1"),
    myObj(name: "Name 3", team: "Team 2", league: "League 1"),
    myObj(name: "Name 4", team: "Team 2", league: "League 1"),
    myObj(name: "Name 5", team: "Team 2", league: "League 1"),
    myObj(name: "Name 6", team: "Team 3", league: "League 2"),
    myObj(name: "Name 7", team: "Team 4", league: "League 2"),
    myObj(name: "Name 8", team: "Team 4", league: "League 2"),
    myObj(name: "Name 9", team: "Team 5", league: "League 2"),
    myObj(name: "Name 10", team: "Team 6", league: "League 3"),
    myObj(name: "Name 11", team: "Team 6", league: "League 3"),
    myObj(name: "Name 12", team: "Team 6", league: "League 3"),
    myObj(name: "Name 13", team: "Team 7", league: "League 3"),
    myObj(name: "Name 14", team: "Team 7", league: "League 3"),
]

On another page I have the possibility to choose multiple filters, for example, I choose to see all the players of League 2 and League 3 and at the same time of Team 6 and and Team 4. so they return these two arrays to me在另一个页面上,我可以选择多个过滤器,例如,我选择查看 League 2 和 League 3 的所有玩家,同时查看 Team 6 和 Team 4。所以他们将这两个 arrays 返回给我

List<String> filtersLeague = ["League 2", "League 3"];
List<String> filtersTeams = ["Team 6", "Team 4"];

how do i filter this with these two arrays?我如何用这两个 arrays 过滤这个? thank you!!谢谢你!!

One way to do this is like so.一种方法就是这样。

List<myObj> filteredList = obj
      .where((e) => filtersTeams.contains(e.team) && filtersLeague.contains(e.league))
      .toList();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM