using System.Collections.Generic;
string contents = "Foo=\" \" Bar=\"\" OrderDate=\"11/7/2010 19:31\" OrderNumber=\"090181809\" OrderAmount=\"50404.04\" BillTo=\"Customer\" BillToAddr1=\"123 BAR DR\" BillToAddr2=\"PO BOX 111\" BillToAddr3=\"\" BillToCity=\"NEW YORK\" BillToState=\"NY\" BillToPostalCode=\"42002\" BillToCntry=\"US\" BillToLat=\"39.99\" BillToLong=\"-34.73\" ShipTo=\"BAR\" ShipToAddr1=\"123 BAR LANE\" ShipDate=\"1/9/2015\" ForeignDuty=\"True\" MixNuts=\"False\" ";
foreach (var item in CreatePairs(contents))
Console.WriteLine(item.Key + ":'" + item.Val + "'");
public static IEnumerable<Pair> CreatePairs(string contents)
contents = contents.Replace("\" ", "\"|").Replace("=\"|\"", "=\" \"");
foreach (var item in contents.Split('|').Where(x=>x.Trim().Length>0))
var vals = item.Split('=');
yield return new Pair { Key = vals[0].Trim(), Val = vals[1].TrimStart('"').TrimEnd('"') };
public string Key{get;set;}
public string Val{get;set;}