Array - FindLastIndex
A T[] extension method that searches for the last index.
public static void Main() { string[] dinosaurs = { "Compsognathus", "Amargasaurus", "Oviraptor", "Velociraptor", "Deinonychus", "Dilophosaurus", "Gallimimus", "Triceratops" }; Console.WriteLine(); foreach (string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } // C# Extension Method: Array - FindLastIndex Console.WriteLine("\nArray.FindIndex(dinosaurs, EndsWithSaurus): {0}", dinosaurs.FindLastIndex(EndsWithSaurus)); Console.WriteLine("\nArray.FindIndex(dinosaurs, 2, EndsWithSaurus): {0}", dinosaurs.FindLastIndex(2, EndsWithSaurus)); Console.WriteLine("\nArray.FindIndex(dinosaurs, 2, 3, EndsWithSaurus): {0}", dinosaurs.FindLastIndex(2, 3, EndsWithSaurus)); } // Search predicate returns true if a string ends in "saurus". private static bool EndsWithSaurus(String s) { if ((s.Length > 5) && (s.Substring(s.Length - 6).ToLower() == "saurus")) { return true; } else { return false; } }
View Source
using System; public static partial class Extensions { /// <summary> /// A T[] extension method that searches for the last index. /// </summary> /// <typeparam name="T">Generic type parameter.</typeparam> /// <param name="array">The array to act on.</param> /// <param name="match">Specifies the match.</param> /// <returns>The found index.</returns> public static Int32 FindLastIndex<T>(this T[] array, Predicate<T> match) { return Array.FindLastIndex(array, match); } /// <summary> /// A T[] extension method that searches for the last index. /// </summary> /// <typeparam name="T">Generic type parameter.</typeparam> /// <param name="array">The array to act on.</param> /// <param name="startIndex">The start index.</param> /// <param name="match">Specifies the match.</param> /// <returns>The found index.</returns> public static Int32 FindLastIndex<T>(this T[] array, Int32 startIndex, Predicate<T> match) { return Array.FindLastIndex(array, startIndex, match); } /// <summary> /// A T[] extension method that searches for the last index. /// </summary> /// <typeparam name="T">Generic type parameter.</typeparam> /// <param name="array">The array to act on.</param> /// <param name="startIndex">The start index.</param> /// <param name="count">Number of.</param> /// <param name="match">Specifies the match.</param> /// <returns>The found index.</returns> public static Int32 FindLastIndex<T>(this T[] array, Int32 startIndex, Int32 count, Predicate<T> match) { return Array.FindLastIndex(array, startIndex, count, match); } }