如何检查字符串是否已存在于列表中



我试图创建一个字符串列表,该列表具有来自firebase的数组。这非常有效。但现在我想过滤一下列表。所以我想要的是一次添加所有的hastags。所以,如果一个标签存在两次,我只想把它放在列表中一次。这是我的代码


Future<List<String>> getHashtags() async {
List<String> allVideoHastags = [];
QuerySnapshot snapshots =
await FirebaseFirestore.instance.collection('videos').get();
for (QueryDocumentSnapshot videoSnapshot in snapshots.docs) {
List<String> videoHastags =
List.from(videoSnapshot.data()['Hashtagsforallvideos']);
allVideoHastags.addAll(videoHastags);
}
_allResults = allVideoHastags;
searchResults();

return allVideoHastags;
}

因此,在将标签添加到列表中之前,我想检查它是否已经存在于字符串列表中。希望任何人都能提供帮助。如果你需要更多信息,请留下评论

只需循环从firebase获得的标签,并将它们添加到您的结果中,前提是它们还没有像这样出现:

Future<List<String>> getHashtags() async {
List<String> allVideoHastags = [];
QuerySnapshot snapshots =
await FirebaseFirestore.instance.collection('videos').get();
for (QueryDocumentSnapshot videoSnapshot in snapshots.docs) {
List<String> videoHastags =
List.from(videoSnapshot.data()['Hashtagsforallvideos']);
videoHastags.forEach((element) {
if(!allVideoHastags.contains(element)){
allVideoHastags.add(element);
}
});

}
_allResults = allVideoHastags;
searchResults();
return allVideoHastags;
}

这将从列表中删除所有重复项

_allResults = allVideoHastags.toSet().toList();
YOUR_LIST.forEach((element) => if(element == "YOUR_STRING") {YOUR_NEW_LIST.add(element )});

最新更新