Files
2026-02-21 16:45:37 +08:00

48 lines
1.0 KiB
C#

using System;
using System.Linq;
namespace ProGroups
{
internal static class ArrayExt
{
public static void Add<T>(ref T[] array, T val)
{
T[] array2 = new T[array.Length + 1];
Array.Copy(array, array2, array.Length);
array2[array.Length] = val;
array = array2;
}
public static void AddRange<T>(ref T[] array, T[] values)
{
T[] array2 = new T[array.Length + values.Length];
Array.Copy(array, array2, array.Length);
Array.Copy(values, 0, array2, array.Length, values.Length);
array = array2;
}
public static void Remove<T>(ref T[] array, T value)
{
array = array.Where((T x) => !value.Equals(x)).ToArray();
}
public static void Remove<T>(ref T[] array, T[] values)
{
array = array.Where((T x) => !values.Contains(x)).ToArray();
}
public static void RemoveAt<T>(ref T[] array, int index)
{
T[] array2 = new T[array.Length - 1];
for (int i = 0; i < array.Length; i++)
{
if (i != index)
{
array2[(i <= index) ? i : (i - 1)] = array[i];
}
}
array = array2;
}
}
}