You could do something like this.
var lines = File.ReadLines("test.txt");
var header = lines.First().Split('|');
var data = lines.Skip(1).First().Split('|');
var dict = new Dictionary<string, string>();
for (int i = 0; i < header.Length; i++)
{
dict.Add(header[i], data[i]);
}
Console.WriteLine("Taking Col_Title_3 -> {0}", dict["Col_Title_3"]);
foreach (var i in dict.Keys)
{
Console.WriteLine("key: {0} value: {1}",i,dict[i]);
}
Or the dictionary could alternatively be populated like this
var lines = File.ReadLines("test.txt");
var header = lines.First().Split('|');
var data = lines.Skip(1).First().Split('|');
var dict = header.Select((a, i) => new { key = a, data = data[i] })
.ToDictionary(b => b.key, c => c.data);