Collection Validation and Manipulation
public static class CollectionExtensions { public static bool IsNullOrEmpty<T>(this IEnumerable<T> collection) { return collection == null || !collection.Any(); } public static bool HasItems<T>(this IEnumerable<T> collection) { return collection != null && collection.Any(); } public static void ForEach<T>(this IEnumerable<T> collection, Action<T> action) { if (collection == null || action == null) return; foreach (var item in collection) { action(item); } } public static IEnumerable<T> WhereNotNull<T>(this IEnumerable<T> collection) where T : class { return collection?.Where(item => item != null) ?? Enumerable.Empty<T>(); } public static List<T> ToSafeList<T>(this IEnumerable<T> collection) { return collection?.ToList() ?? new List<T>(); } }