Вы можете использовать LINQ, чтобы найти все индексы, подобные этому:
var indexes = myTuples.Select((t, i) => new { t, i })
.Where(x => x.t.Item1 == "png")
.Select(y => y.i);
Вот оно в приложении для демонстрационной консоли:
static void Main(string[] args)
{
var myTuples = new List<Tuple<string, string>>
{
new Tuple<string, string>("png", "jpg"),
new Tuple<string, string>("jpg", "bmp"),
new Tuple<string, string>("png", "bmp")
};
var indexes = myTuples.Select((t, i) => new { t, i })
.Where(x => x.t.Item1 == "png")
.Select(y => y.i);
Console.WriteLine("Indexes:");
foreach (var index in indexes)
{
Console.WriteLine("Index: " + index);
}
Console.ReadLine();
}
Результаты: