【问题标题】:Dart - Read Keys and Values from a Map inside a MapDart - 从地图中的地图读取键和值
【发布时间】:2021-06-06 20:24:10
【问题描述】:

我有一个结构如下的变量:

final Map<String, Map<double, String>> ingredients;

在索引外部映射后,我需要以字符串形式访问“内部”映射键和值:

ingredients.keys.elementAt(index)

上面的代码返回一个“正则字符串”,但是当访问“内部”映射时:

ingredients.values.elementAt(index).keys

结果打印出来并带有圆括号。我想这是因为第一个示例返回一个字符串,而第二个示例返回一个 Itarable。但是如何使它成为没有圆括号的字符串呢?

.toString() 不起作用。

我无法将其设为单个 Map,因为我需要将双精度值与第二个字符串(单位规范)分开。

我会将结果放在 ListView.builder() 内的 Flutter Text() 小部件中,这就是索引的原因。

恢复:我得到 (200)(g),我需要 200g。

感谢您的关注。任何帮助表示赞赏。

【问题讨论】:

  • "但是如何使它成为不带圆括号的字符串?"你能提供一个你正在寻找的确切输出的例子吗?也就是说,给定一个带有值{1.0, 'some string'}Map&lt;double, String&gt;,你想要什么字符串表示形式?
  • @jamesdlin 当然。我得到 (200)(g) 并且我需要 200g 作为字符串输出。
  • 内部Map真的可以包含多个键值对吗?如果没有,定义自己的类会更简单(例如class Quantity { double amount; String units; Quantity(this.amount, this.units); String toString() =&gt; '$amount$units'; })。
  • 我明白了,里面的地图只有一对。我会努力实现你的想法。非常感谢。

标签: flutter dictionary dart


【解决方案1】:

试试这个 -

var _value = ingredients.values.elementAt(index).values;
print(_value.substring(1,_value.length-1));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    相关资源
    最近更新 更多