通过也是一个List的属性筛选List <Object>的流

时间:2019-10-16 21:40:13

标签: flutter dart rxdart

我有一个List<Content>,并且想按列表字段的属性进行过滤。

内容

class Content {
// ...
  final List<Tag> tags;
}

标签

class Tag {
// ...
  final String name;
  final String slug;
}

我来自Angular

map(data => data.filter(a => a.tags.some(t => t.slug.includes(this.slug)))),

通过Tag的Slug属性进行过滤。

但是现在是Dart,Flutter和rxdart。 我到目前为止:

    applicationBloc.contentOutput.map(
            (contents) => contents.where(
                    (item) => item.tags == widget.slug).toList()
    )

contentOutput是BehaviorSubject的流。

基本上我只有几千个项目,只想显示带有特定标签的内容。

如何按Flutter / Dart中的列表的对象属性列表的属性进行过滤?

1 个答案:

答案 0 :(得分:0)

使用类似的东西:

  var foo = <Content>[];
  var filtered = foo
      .where((content) => content.tags.any((tag) => tag.slug == 'bingo'))
      .toList();

tag.slug == whatever谓词替换为所需的任何测试。