У меня недавно была похожая проблема.Вот фрагмент кода, который может быть полезен для вас.Стратегия такая же, как в Ответы Джона Скита .
Похоже, что ключи уникальны в вашем блоке текста, поэтому вы можете использовать Dictionary
string[] pairs = block.Split(';');
Dictionary<string, string> values = new Dictionary<string, string>();
foreach (var element in pairs)
{
var tmp = element.Split('=');
var key = tmp[0];
var val = tmp.Length == 2 ? tmp[1] : string.Empty;
values.Add(key,val );
}
foreach (var el in values)
{
Console.WriteLine(el);
}