public int Insert(OracleConnection connection, object[] args) { if (args.Length % 2 != 0) { throw new ArgumentException("number of args must be even"); } int M = args.Length / 2; switch (M) { case 1: var statement1 = $"insert into {table} ({args[0]}) values (:0)"; return(QM.Insert(connection, statement1, new object[] { args[1] })); case 2: var statement2 = $"insert into {table} ({args[0]},{args[2]}) values (:0, :1)"; return(QM.Insert(connection, statement2, new object[] { args[1], args[3] })); case 3: var statement3 = $"insert into {table} ({args[0]},{args[2]},{args[4]}) values (:0, :1, :2)"; return(QM.Insert(connection, statement3, new object[] { args[1], args[3], args[5] })); case 4: var statement4 = $"insert into {table} ({args[0]},{args[2]},{args[4]},{args[6]}) values (:0, :1, :2, :3)"; return(QM.Insert(connection, statement4, new object[] { args[1], args[3], args[5], args[7] })); default: throw new NotImplementedException($"M = {M}"); } }