public static string ToQueryString(this NameValueCollection parameters, String delimiter = "&", Boolean omitEmpty = true)
{
if (parameters == null)
return string.Empty;
if (String.IsNullOrEmpty(delimiter))
delimiter = "&";
Char equals = '=';
List<String> items = new List<String>();
for (int i = 0; i < parameters.Count; i++)
{
foreach (String value in parameters.GetValues(i))
{
Boolean addValue = (omitEmpty) ? !String.IsNullOrEmpty(value) : true;
if (addValue)
items.Add(String.Concat(parameters.GetKey(i), equals, HttpUtility.UrlEncode(value)));
}
}
return String.Join(delimiter, items.ToArray());
}
}