森林海
它似乎很适合通用扩展方法,并且Array.Copy有一个很好的快速解决方案注意:这会重新创建一个数组。给定public static class Extensions{ public static T[] RemoveElement<T>(this T[] source, int index) where T : new() { if(index >= source.Length) throw new ArgumentOutOfRangeException(nameof(index)); // create new array var result = new T[source.Length - 1]; // Copy the first part Array.Copy(source, 0, result, 0, index); // Copy the second part Array.Copy(source, index+1, result, index, source.Length - (index+1)); return result; }} 用法int[] N = new int[]{1,0,6,0,3,4};var result = N.RemoveElement(1);例子public static void Main(){ int[] N = new int[]{1,0,6,0,3,4}; Console.WriteLine(string.Join(",", N.RemoveElement(1))); Console.WriteLine(string.Join(",", N.RemoveElement(0))); Console.WriteLine(string.Join(",", N.RemoveElement(5)));}输出1,6,0,3,40,6,0,3,41,0,6,0,3完整的演示在这里其他资源复制(数组,Int32,数组,Int32,Int32)从指定源索引开始的 Array 中复制一系列元素,并将它们粘贴到从指定目标索引开始的另一个 Array。长度和索引指定为 32 位整数。