using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Serein.Library.Utils { /// /// 数组操作的工具类 /// public class ArrayHelper { /// /// 数组尾部扩容 /// /// /// /// 扩容长度 /// 新的数组 /// length 传入负值 public static T[] Expansion(T[] original, int length) { if(length == 0) { return original; } else if (length > 0) { // 创建一个新数组,比原数组大1 T[] newArray = new T[original.Length + length]; // 复制原数组的元素 for (int i = 0; i < original.Length; i++) { newArray[i] = original[i]; } // 将新对象放在最后一位 return newArray; } else { throw new Exception("不能减少数组长度"); } } /// /// 为数组添加新的元素 /// /// /// /// /// 新的数组 public static T[] AddToArray(T[] original, T newObject) { // 创建一个新数组,比原数组大1 T[] newArray = ArrayHelper.Expansion(original, 1); original.CopyTo(newArray, 0); // 将新对象放在最后一位 newArray[newArray.Length - 1] = newObject; return newArray; } /// /// 移除数组某个元素 /// /// /// /// /// 新的数组 public static T[] RemoteToArray(T[] original, int index) { if (index == 0) { return new T[0]; } // 创建一个新数组,比原数组小1 T[] newArray = new T[original.Length - 1]; for (int i = 0; i < index; i++) { newArray[i] = original[i]; } for (int i = index; i < newArray.Length; i++) { newArray[i] = original[i + 1]; } return newArray; } } }