Why "custom functions"? Try something like
using StringDictionary = System.Collections.Specialized.StringDictionary;
static StringDictionary ParseKeyValues(string source, char parameterDelimiter, char keyValueDelimiter) {
StringDictionary result = new StringDictionary();
string[] parameters =
source.Split(
new char[] { parameterDelimiter },
System.StringSplitOptions.RemoveEmptyEntries);
foreach (string parameter in parameters) {
string[] pair = parameter.Split(new char[] { keyValueDelimiter });
string key = pair[0];
string value = null;
if (pair.Length > 1)
value = pair[1];
result.Add(key, value);
}
return result;
}
A Regular Expression solution exist but will be uglier, as the number of parameters is unknown.
—SA