ToLua lua对c#数组的访问
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#)


首页 我的博客
粤ICP备17103704号