【问题标题】:Flutter/Dart Filter a Objekt from ListFlutter/Dart 从列表中过滤对象
【发布时间】:2022-01-09 04:08:29
【问题描述】:

我想用一个按钮字符串过滤一个列表,我有一个这样的内容列表,

 var aktifliste = [];   
 List<Dersler> icerik2 = [
        Dersler("TYT", "Türkce-TYT", "Sözückte Anlam", "https://youtube.de"),
        Dersler("TYT", "Matematik-TYT", "Sayilar", "https://google.de"),
        Dersler("TYT", "Fizik-TYT", "Madde", "https://kkspro.de"),
      ];

List 中的类是,

class Dersler {
  String sinav;
  String ders;
  String konu;
  String link;

  Dersler(this.sinav, this.ders, this.konu, this.link);
  Map toJson() => {
        'sinav': sinav,
        'ders': ders,
        'konu': konu,
        'link': link,
      };
}

过滤列表并插入另一个列表的功能是,

void filtre(String gelen) {
    aktifliste = icerik2.where((element) => element == gelen).toList();
    update();
  }

如果我单击启动过滤功能并发送“gelen”字符串的按钮。并且 aktifliste 将插入过滤对象,但我想用 Option 过滤它,例如如果我发送 TYT 那么它将用 sinav Option 过滤。

ElevatedButton(
                onPressed: () {
          controller.filtre("TYT"),
}, child: Text(controller.icerik2[index].ders));

如果我发送字符串“Sayilar”,它将搜索所有列表并仅找到一个视频。

ElevatedButton(
                onPressed: () {
controller.filtre("TYT"),
}, child: Text(controller.icerik2[index].ders));

有人对过滤或搜索列表中的对象有任何想法吗?它不适用于 where 函数。不返回任何对象?

谢谢!

【问题讨论】:

  • 您要检查哪些特定字段;德斯;科努;关联。或者所有这些都是因为 'TYT' 的出现

标签: android json list flutter dart


【解决方案1】:

看看这对你有没有帮助。

对象:

class Dersler {
  String sinav;
  String ders;
  String konu;
  String link;

  Dersler(this.sinav, this.ders, this.konu, this.link);
  Map toJson() => {
        'sinav': sinav,
        'ders': ders,
        'konu': konu,
        'link': link,
      };

  bool compareTo(String filter){
    if(sinav == filter) return true;
    if(ders.contains(filter)) return true;
    if(konu.contains(filter)) return true;
    return false;
  }
}

功能过滤器

filter(String gelen) async {
  var aktifliste = icerik2.where((element) => element.compareTo(gelen)).toList();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 2022-01-12
    相关资源
    最近更新 更多