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;
}
}
}