gpt4 book ai didi

dart - 在 Dart/Flutter 中从集合转换为列表?

转载 作者:IT王子 更新时间:2023-10-29 06:40:25 27 4
gpt4 key购买 nike

我有一组类型 Set<WordPair> &我想将其转换为 List<String> 类型的列表因为我想用 SharedPreferences 保存它Flutter 中的 API

目前,我的状态是这样的

final Set<WordPair> _saved = Set<WordPair>();

现在我想保存 _saved变量为 SharedPreferences

如果我这样做,prefs.setStringList('saved', _saved.toList());它给了我这样的编译错误

[dart] The argument type 'Set' can't be assigned to the parameter type 'List'. [argument_type_not_assignable]

如何存储完整 _saved SharedPreferences 中的变量?

最佳答案

即使将其转换为列表后仍无法将其保存在首选项中的原因是您正在尝试保存 StringList ( prefs.setStringList ) 而你的集合是 WordPair 类型

解决方法是,

prefs.setStringList('saved', _saved.map((WordPair wordPairItem) => wordPairItem.toString()).toList());

即将每一项转换为String,然后保存为StringList

对于您在评论中的后续问题:

how do I convert from List<String> to Set<WordPair> in initState? As there is no .toWordPair() & wrapping up takes 2 args so Idk how to do it?

根据文档,WordPairRepresentation of a combination of 2 words, first and second .因此,您可以将 String 分成两个子字符串,并在各自的参数位置传递这 2 个子字符串。

[更新](后续问题作者提出的解决方案)可以在 here 找到解决方案。

关于dart - 在 Dart/Flutter 中从集合转换为列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53717362/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com