using System; using System.Text; namespace BitStrap { public static class ArrayExtensions { public static int Count(this T[] collection, Predicate predicate) { if (predicate == null) { return 0; } int num = 0; for (int i = 0; i < collection.Length; i++) { if (predicate(collection[i])) { num++; } } return num; } public static bool All(this T[] collection, Predicate predicate) { if (predicate == null) { return false; } for (int i = 0; i < collection.Length; i++) { if (!predicate(collection[i])) { return false; } } return true; } public static bool Any(this T[] collection, Predicate predicate) { if (predicate == null) { return false; } for (int i = 0; i < collection.Length; i++) { if (predicate(collection[i])) { return true; } } return false; } public static T FirstOrDefault(this T[] collection) { return (collection.Length <= 0) ? default(T) : collection[0]; } public static T FirstOrDefault(this T[] collection, Predicate predicate) { for (int i = 0; i < collection.Length; i++) { if (predicate(collection[i])) { return collection[i]; } } return default(T); } public static string ToStringFull(this T[] collection) { if (collection == null) { return "null"; } if (collection.Length <= 0) { return "[]"; } StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("[ "); for (int i = 0; i < collection.Length - 1; i++) { stringBuilder.Append(collection[i].ToString()); stringBuilder.Append(", "); } stringBuilder.Append(collection[collection.Length - 1].ToString()); stringBuilder.Append(" ]"); return stringBuilder.ToString(); } } }