我试图在NLua中迭代一个NLua,但不知怎么回事。JArray的处理方式是用户数据(什么是用户数据?)因此不能被迭代。
使用JArray方法将JValue[]转换为c#也不起作用。
据我所见,有两种可能的解决办法。1.为nlua建立一个可工作的Iterable函数。2.将JArray转换为Lua表,然后在其之上使用for循环。
我在这两件事上都没有成功。有没有人在这方面有更多的经验?提前谢谢你。
我试过的事情:
regCommands是一个在JTokens中包含大量JObjects的JArray
jArray = Json:parseJArray(regCommands)
for k, v in ipairs(jArray) do
print(k.. " ".. v)
end这就给出了jArray上的错误,jArray是用户数据。
Json:parseJArray(JArray)是一个c#函数,它接受一个JArray并吐出一个JToken[]。
我试过的另一件事:
keyVal = regCommands.First
while keyVal ~= nil do
if (type(JProperty)) then
regCommands[keyVal.Name:lower()] = keyVal.First
end
keyVal = keyVal.Next
end这会在regCommands[keyVal.Name:lower()] = keyVal.first上崩溃,使任何逻辑原因白化。
即使获得一个c#枚举数也不起作用
enumCommands = regCommands:GetEnumerator()
enumCommands:MoveNext()
repeat
enumCommands:MoveNext()
until enumCommands:Current() ~= nil发布于 2015-05-08 19:25:56
要迭代.NET集合,可以使用luanet.each函数,它将返回要通过.NET枚举对象迭代的函数。
local each = luanet.each
for k in each(jArray) do
print (k)
endhttps://stackoverflow.com/questions/30019550
复制相似问题