internal static Dictionary<string, string> SplitIntoDictionary(this string dataString, char splitter = '&')
{
string[] tokens = dataString.Split(new char[] { splitter }, StringSplitOptions.RemoveEmptyEntries);
Dictionary<string, string> result = new Dictionary<string, string>(tokens.Length);
foreach (string token in tokens)
{
string[] component = token.Split(new char[] { '=' }, StringSplitOptions.None);
result.Add(component[0], component[1]);
}
return result;
}