Как добавить индексное поле к результатам Linq

Скажем, у меня есть такой массив:

string [] Filelist = ...

Я хочу создать результат Linq, где каждая запись имеет такую ​​позицию в массиве, как это:

var list = from f in Filelist
    select new { Index = (something), Filename = f};

Индекс должен быть 0 для 1-го элемента, 1 для второго и т.д.

Что я должен использовать для выражения Index =?

Ответ 2

string[] values = { "a", "b", "c" };
int i = 0;
var t = (from v in values
select new { Index = i++, Value = v}).ToList();