using System; using System.Collections.Generic; public class Test { public static void Main() { A[] a = new A[3]; a[0] = new A(1); a[1] = new A(2); a[2] = new A(3); Delete( ref a, new A(1)); Console.WriteLine( a.Length ); } private static void Delete( ref A[] arr, A a ) { var temp = new List(arr); temp.Remove(a); arr = temp.ToArray(); } } public class A { int _i; public A( int i ){ _i = i; } public override bool Equals( object o ) { A a = o as A; return a != null && _i == a._i; } public override int GetHashCode(){ return _i; } public override string ToString(){ return _i.ToString(); } }