For removing at a index you could do:
public static T[] removeArrAt<T>(T[] src, int idx) { return src.Take(idx).Concat(src.Skip(idx + 1)).ToArray(); }
which returns the modified array