using System.Collections.Generic;
using System.Globalization;
public static void Main() {
var dic = new Dictionary<String, IEnumerable<String>> {
{"a", new[] { "b", "c", "d" }},
{"e", new[] { "f", "g", "h" }},
{"i", new[] { "j", "k", "l" }}
var r = dic.SelectMany((x, i) => x.Value.Select((y, j) => new KeyValuePair<String, String>($"{(i * x.Value.Count() + j).ToString()}_{x.Key}", y)));
r.ToList().ForEach(x => { Console.WriteLine(x); });