// System.Array.FindLastIndex(T[], int, int, Predicate) public static int FindLastIndex <T>(T[] arr, int i, int n, Func <T, bool> p) { var j = new WrappedArray <T>(arr).View(i, n).FindIndex(p); return(j < 0 ? j : j + i); }
// System.Array.LastIndexOf(T[], T) public static int LastIndexOf <T>(T[] arr, T x) { var j = new WrappedArray <T>(arr).LastIndexOf(x); return(j < 0 ? -1 : j); }
// System.Array.LastIndexOf(T[], T, int, int) public static int LastIndexOf <T>(T[] arr, T x, int i, int n) { var j = new WrappedArray <T>(arr).View(i, n).LastIndexOf(x); return(j < 0 ? -1 : j + i); }
// System.Array.IndexOf(T[], T, int) public static int IndexOf <T>(T[] arr, T x, int i) { var j = new WrappedArray <T>(arr).View(i, arr.Length - i).IndexOf(x); return(j < 0 ? -1 : j + i); }