protected Array EnsureArrayIndex(Array a, int index, Type elementType) { if (a == null) return Array.CreateInstance(elementType, 32); if (index < a.Length) return a; Array b = Array.CreateInstance(elementType, a.Length * 2); Array.Copy(a, b, index); return b; }