You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pharo中将两个OrderedCollection转换为指定键值对Dictionary?

Pharo 构造对应键值对字典的正确方法

问题分析

你当前的代码通过do:循环尝试构造字典,但逻辑错误:每次循环都将整个t集合作为键、整个items集合作为值重新创建字典,循环结束后仅保留最后一次创建的结果,因此得到的是单键值对的字典,而非期望的逐个元素对应。

正确实现方式

方法1:使用专用API(最简洁)

Pharo提供了直接通过两个集合创建字典的方法,无需手动循环:

dict := Dictionary newFromKeys: t values: items.

方法2:手动生成关联对象后创建字典

如果需要更灵活的配对逻辑,可以先将两个集合的元素一一配对成Association对象,再构造字典:

"生成键值关联列表"
associations := t with: items collect: [:key :value | key -> value].
"用关联列表创建字典"
dict := Dictionary newFrom: associations.

原代码错误原因

原代码中的do:循环完全没有利用循环变量i,每次执行dict := Dictionary newFrom:{t->items}都是创建一个以整个集合为键值的新字典,三次循环后最终只保留最后一次的赋值结果,自然无法得到逐个对应的键值对。

内容的提问来源于stack exchange,提问作者Mansour Faouziel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:55:20