using System.Collections.Generic;
public static void Main()
var dictionary = new Dictionary<string, string>
var list = new List<KeyValuePair<string, string>>(dictionary);
Console.WriteLine($"Using dictionary: {JoinUrlQuery(url, dictionary)}");
Console.WriteLine($"Using list: {JoinUrlQuery(url, list)}");
public static string JoinUrlQuery(string url, IEnumerable<KeyValuePair<string, string>> source, string keyValuePairSeparator = "&", string keyValueSeparator = "=", bool urlEncode = false)
var builder = new StringBuilder();
foreach (var (key, value) in source)
builder.Append($"{key}{keyValueSeparator}{(urlEncode ? Uri.EscapeDataString(value) : value)}{keyValuePairSeparator}");
return $"{url}?{builder}";