private string luaString = @" function tset(array) --array是c#传进来的数组 len = array.Length --获取数组的长度 for i=0,len-1,1 do print(array[i]) --和c#数组一样的下标方式访问 end arrTable = array:ToTable() for i=1,#arrTable do print(arrTable[i]) end iter = array:GetEnumerator() while iter:MoveNext() do print(iter.Current) end print(array:IndexOf(6)) end "; // Use this for initialization void Start () { LuaState lua = new LuaState (); lua.Start (); lua.DoString (luaString); int[] vals = { 1, 3, 5, 4, 6, 1 }; LuaFunction func = lua ["tset"] as LuaFunction; func.BeginPCall (); func.Push (vals); func.PCall (); func.EndPCall (); func.Dispose (); lua.Dispose (); func = null; lua = null; }
这里有三种遍历的方式,传入的c#数组,直接安装c#的数组那般使用就行了
也可以转换成Table,还有一个更灵活的GetEnumberator()方法
IndexOf()方法查找元素的下标,从0开始的(C#)