0

Usar LINQ neste tipo de tarefa só vai tornar o código extremamente difícil de ler.
Usar um for normal me parece uma ideia bem melhor.
var lista = new List<KeyValuePair<char, char>>();
for(int i = 0; i < str.Length - 1; i += 2)
{
lista.Add(new KeyValuePair<char, char>(str[i], str[i + 1]));...