引数としてハッシュテーブルを受け入れるメソッドがあります(はい、時代遅れです..):
public static LuaTable HashtableToLuatable(Hashtable t, int depth = 1)
これは正しく動作します。
ここで、最初のパラメーターとして ArrayList も受け入れたいので、't' に Hashtable と ArrayList の両方の値を持たせることができます。現在、次のように、メソッドを 2 回コピーして貼り付けています。
public static LuaTable ArraylistToLuatable(ArrayList t, int depth = 1)
残りはまったく同じです。
これを合体させる方法もあると思います。