Question: I have a text file and I need to put all even lines to Dictionary Key and all even lines to Dictionary Value. What is the best solution to my problem?

```
int count_lines = 1;
Dictionary<string, string> stroka = new Dictionary<string, string>();

foreach (string line in ReadLineFromFile(readFile))
{
    if (count_lines % 2 == 0)
    {
        stroka.Add Value
    }
    else
    { 
       stroka.Add Key
    }

    count_lines++;
}

```

Answer: 
Try this:

```
var res = File
    .ReadLines(pathToFile)
    .Select((v, i) => new {Index = i, Value = v})
    .GroupBy(p => p.Index / 2)
    .ToDictionary(g => g.First().Value, g => g.Last().Value);

```

The idea is to group all lines by pairs. Each group will have exactly two items - the key as the first item, and the value as the second item.

[Demo on ideone](http://ideone.com/eqT8iU).
You probably want to do this:

```
var array = File.ReadAllLines(filename);
for(var i = 0; i < array.Length; i += 2)
{
    stroka.Add(array[i + 1], array[i]);
}

```

This reads the file in steps of two instead of every line separately.

I suppose you wanted to use these pairs: `(2,1)`, `(4,3)`, ... . If not, please change this code to suit your needs.