public static int[] FindAllIndexOf<T>(this T[] array, Predicate<T> filter)
{
// Note: If select does not find a match returns index as "-1"
int[] indexes = array.Select((elementInArray, index) => filter(elementInArray) ? index : -1)
.Where(index => index != -1).ToArray();
return indexes;
}
List<string> strings = new List<string>(){"bob","ate","an", "apple"};
strings.IndexOf("bob");
//returns 0
strings.IndexOf("an");
//returns 2
strings.IndexOf("apple");
//returns 3
strings.IndexOf("banana");
//returns -1
//Because banana is not in the list, IndexOf() returns -1
// given list1 {3, 4, 6, 5, 7, 8}
list1.FindIndex(x => x==5); // should return 3, as list1[3] == 5;
Array.IndexOf(arrName, searchingFor)