Find multiple index in array

.net, arrays, c#, linq

Solution

One way would be to write like this:

var indices = fruits
                .Select ((f, i) => new {f, i})
                .Where (x => x.f == "apple")
                .Select (x => x.i);

Or the traditional way:

var indices = new List<int>();
for (int i = 0; i < fruits.Length; i++)
    if(fruits[i] == "apple")
        indices.Add(i);

Problem

Say I have an array like this ``` string [] fruits = {"watermelon","apple","apple","kiwi","pear","banana"}; ``` Is there an built in function that allows me to query all the index of "apple" ? For example, ``` fruits.FindAllIndex("apple"); ``` will return an array of 1 and 2 If there is not, how should I implement it? Thanks!

Original source