using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace Net3_Proxy { internal static class Utils { public static bool IsNullOrWhiteSpace(string value) { if (value == null) { return true; } for (int i = 0; i < value.Length; i++) { if (!char.IsWhiteSpace(value[i])) { return false; } } return true; } public static IEnumerable Prepend(this IEnumerable seq, T prep) => new PrependEnumerable(seq, prep); private sealed class PrependEnumerable : IEnumerable { private readonly IEnumerable rest; private readonly T first; public PrependEnumerable(IEnumerable rest, T first) { this.rest = rest; this.first = first; } public IEnumerator GetEnumerator() { // TODO: a custom impl that is less garbage yield return first; foreach (var v in rest) yield return v; } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); } } }