using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace AntDesign { public static class EnumerableExtensions { public static void ForEach(this IEnumerable items, Action action) { if (items == null) { return; } foreach (T obj in items) { action(obj); } } public static async Task ForEachAsync(this IEnumerable items, Func func) { if (items == null) { return; } for (int i = 0; i < items.Count(); i++) { await func(items.ElementAt(i)); } } public static bool IsIn(this T source, params T[] array) { if (array == null) { return false; } return array.Contains(source); } public static bool IsIn(this T source, IEnumerable array) { if (array == null) { return false; } return array.Contains(source); } public static T[] Append(this T[] array, T item) { if (array == null) { return new[] { item }; } Array.Resize(ref array, array.Length + 1); array[^1] = item; return array; } public static T[] Remove(this T[] array, T item) { if (array == null) { return new[] { item }; } array = array.Where(x => !x.Equals(item)).ToArray(); return array; } } }