public static TSource First <TSource>(IEnumerable <TSource> source) { if (source == null) { throw ThrowHelper.ArgumentNull("source"); } IList <TSource> list = source as IList <TSource>; if (list == null) { using (IEnumerator <TSource> enumerator = source.GetEnumerator()) { if (!enumerator.MoveNext()) { throw ThrowHelper.NoElements(); } else { return(enumerator.Current); } } } else if (list.Count > 0) { return(list[0]); } throw ThrowHelper.NoElements(); }
public static List <TSource> ToList <TSource>(IEnumerable <TSource> source) { if (source == null) { throw ThrowHelper.ArgumentNull("source"); } return(new List <TSource>(source)); }
public static IEnumerable <TSource> Skip <TSource>(IEnumerable <TSource> source, int count) { if (source == null) { throw ThrowHelper.ArgumentNull("source"); } return(Enumerable.SkipIterator <TSource>(source, count)); }
public static IEnumerable <TResult> Select <TSource, TResult>(IEnumerable <TSource> source, Func <TSource, int, TResult> selector) { if (source == null) { throw ThrowHelper.ArgumentNull("source"); } if (selector == null) { throw ThrowHelper.ArgumentNull("selector"); } return(Enumerable.SelectIterator <TSource, TResult>(source, selector)); }
public static TSource[] ToArray <TSource>(IEnumerable <TSource> source) { if (source == null) { throw ThrowHelper.ArgumentNull("source"); } TSource[] array = source as TSource[]; if (array != null) { return(array); } return(new List <TSource>(source).ToArray()); }
public static IEnumerable <TResult> Select <TSource, TResult>(IEnumerable <TSource> source, Func <TSource, TResult> selector) { if (source == null) { throw ThrowHelper.ArgumentNull("source"); } if (selector == null) { throw ThrowHelper.ArgumentNull("selector"); } foreach (TSource item in source) { yield return(selector(item)); } }
public static bool Any <TSource>(IEnumerable <TSource> source) { if (source == null) { throw ThrowHelper.ArgumentNull("source"); } using (IEnumerator <TSource> enumerator = source.GetEnumerator()) { if (!enumerator.MoveNext()) { return(false); } else { return(true); } } }
public static IEnumerable <TSource> Where <TSource>(IEnumerable <TSource> source, Func <TSource, bool> predicate) { if (source == null) { throw ThrowHelper.ArgumentNull("source"); } if (predicate == null) { throw ThrowHelper.ArgumentNull("predicate"); } foreach (TSource item in source) { if (predicate(item)) { yield return(item); } } }
public static TSource FirstOrDefault <TSource>(IEnumerable <TSource> source, Func <TSource, bool> predicate) { if (source == null) { throw ThrowHelper.ArgumentNull("source"); } if (predicate == null) { throw ThrowHelper.ArgumentNull("predicate"); } foreach (TSource item in source) { if (predicate(item)) { return(item); } } return(default(TSource)); }
public static Dictionary <TKey, TElement> ToDictionary <TSource, TKey, TElement>(IEnumerable <TSource> source, Func <TSource, TKey> keySelector, Func <TSource, TElement> elementSelector, IEqualityComparer <TKey> comparer) { if (source == null) { throw ThrowHelper.ArgumentNull("source"); } if (keySelector == null) { throw ThrowHelper.ArgumentNull("keySelector"); } if (elementSelector == null) { throw ThrowHelper.ArgumentNull("elementSelector"); } Dictionary <TKey, TElement> tKeys = new Dictionary <TKey, TElement>(comparer); foreach (TSource tSource in source) { tKeys.Add(keySelector(tSource), elementSelector(tSource)); } return(tKeys); }