我想迭代这样的事情:
public readonly IDictionary<int, Entity> Entities = new Dictionary<int, Entity>();
在Lua,使用MoonSharp。从文档中可以看出,MoonSharp会自动转换为IDictionary
类型的表格吗?
然而,尝试做这样的事情......
for k,v in pairs(World.Entities) do
-- something
end
......正在给我:
ScriptRuntimeException: bad argument #1 to 'next' (table expected, got userdata)
为什么MoonSharp没有将我的字典转换成表格,我有什么遗漏?
谢谢!
答案 0 :(得分:0)
我仍然不知道为什么MoonSharp不会自动处理这个问题 - 起初我认为这可能是我的实体的问题所在&#39;类型,但我已经将其切换出来并在其周围进行测试,但仍然没有。
我现在的解决方法是处理.lua文件中的转换。
function convert.dictTable(clr)
local table = {}
local enumerator = clr:GetEnumerator()
while enumerator:MoveNext() do
table[enumerator.Current.Key] = enumerator.Current.Value
end
return table
end