Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Dart类列表中获取字符串的更有效方法_Dart - Fatal编程技术网

从Dart类列表中获取字符串的更有效方法

从Dart类列表中获取字符串的更有效方法,dart,Dart,只是想在Dart中找到一种更有效的方法: List<String> tagStrings = List(); List<TagCategory> categories = List(); source.forEach( (content) { if (content.tagCategories != null) { categories.addAll(content.tagCategories); }

只是想在Dart中找到一种更有效的方法:

List<String> tagStrings = List();
List<TagCategory> categories = List();
    source.forEach(
      (content) {
        if (content.tagCategories != null) {
          categories.addAll(content.tagCategories);
        }
      },
    );
    categories = categories.toSet().toList(); // remove duplicates
    categories.forEach(
      (element) {
        List<Tag> tags = element.tags;
        tags.forEach(
          (tag) {
            tagStrings.add(tag.label);
          },
        );
      },
    );
    tagStrings = tagStrings.toSet().toList();
List tagStrings=List();
列表类别=列表();
source.forEach(
(内容){
if(content.tagCategories!=null){
categories.addAll(content.tagCategories);
}
},
);
categories=categories.toSet().toList();//删除重复项
类别。forEach(
(要素){
列表标记=element.tags;
弗雷赫酒店(
(标签){
tagStrings.add(tag.label);
},
);
},
);
tagStrings=tagStrings.toSet().toList();
我有一个
Trail
对象列表,其中包含一个
TagCategory
对象列表,这些对象本身包含一个
Tag
对象列表,该列表包含一个名为
label
字符串
属性

我正试图去除所有这些标签,以便在过滤器中使用,我需要删除重复的标签,因此黑客需要将其转换为
,然后返回到我可以排序的列表中


最有效的方法是什么?

转换到集合以避免重复是可以的

我会把它写成文字: 尝试:

var-tags=[…{for(var-tagin{for(var-content-in-source)…?content.tagCategories})
tag.label}];
然后,如果以后仍要删除标签中的重复项,您可能会担心是否真的需要删除标记类别中的重复项

如果性能是唯一的目标,那么我可能会做一些更重要的事情,比如:

var set={}
for(源中的var内容){
var categories=content.tagCategories;
如果(类别!=null){
for(分类中的var类别)set.add(category.label);
}
}
var tagStrings=set.toList();