c# parallel foreach loop finding index

Kurkula picture Kurkula · Sep 27, 2016 · Viewed 14k times · Source

I am trying to read all lines in a text file and planning to display each line info. How can I find the index for each item inside loop?

string[] lines = File.ReadAllLines("MyFile.txt");
    List<string> list_lines = new List<string>(lines);
    Parallel.ForEach(list_lines, (line, index) =>
      {
         Console.WriteLine(index);
    //   Console.WriteLine(list_lines[index]);
         Console.WriteLine(list_lines[0]);
       });
       Console.ReadLine();

Answer

Curtis Lusmore picture Curtis Lusmore · Sep 27, 2016

There is another overload for Parallel.ForEach that gives you the index.

Parallel.ForEach(list_lines, (line, state, index) =>
    {
        Console.WriteLine(index);
        Console.WriteLine(list_lines[index]);
    });