using System; using System.Collections.Generic; namespace JM.LinqFaster { public static partial class LinqFaster { /// /// Inverts the order of the elements in a sequence. /// /// A sequence of values to reverse. /// A sequence whose elements correspond to those of the input sequence in reverse order. public static T[] ReverseF(this T[] source) { var result = new T[source.Length]; long lenLessOne = source.Length - 1; for (int i = 0; i < result.Length; i++) { result[i] = source[lenLessOne - i]; } return result; } /// /// Inverts the order of the elements in a sequence in place. /// /// A sequence of values to reverse. public static void ReverseInPlaceF(this T[] source) { Array.Reverse(source); } /// /// Inverts the order of the elements in a sequence. /// /// A sequence of values to reverse. /// A sequence whose elements correspond to those of the input sequence in reverse order. public static List ReverseF(this List source) { var result = new List(source.Count); for (int i = source.Count - 1; i >= 0; i--) { result.Add(source[i]); } return result; } /// /// Inverts the order of the elements in a sequence in place. /// /// A sequence of values to reverse. public static void ReverseInPlaceF(this List source) { source.Reverse(); } } }