Collect indexes from list

Is there a linq function in c# which enables you to collect IEnumerables from a specific range of indexes?

An example would be

        var objectArray = new string[] { "Bill", "Bob", "Joe", "Phil", "Tom", "Paul" };
        var indexArray = new int[] { 1, 3, 5 };

        var list = objectArray.Where(SOME_FUNCTION_TO_GET_INDEXES ??).ToList();

        //output would be list:
        //Bob
        //Phil
        //Paul
Jon Skeet
people
quotationmark

If the original datasource is already accessible by index, such as for a list or an array, you can just use indexArray.Select as Matt showed.

If you've got an IEnumerable<T> instead, you can use the Where overload which provides the index as well as the value. So:

var list = objectArray.Where((value, index) => indexArray.Contains(index))
                      .ToList();

people

See more on this question at Stackoverflow