При исследовании того, как преобразовать NameValueCollection в querystring, я столкнулся с различными методами. Мне любопытно, если более короткий лямбда-синтаксис настолько эффективен, насколько это возможно.
Как преобразовать NameValueCollection в строку (Query) с помощью функции итерации.
public static String ConstructQueryString(NameValueCollection parameters)
{
List<String> items = new List<String>();
foreach (String name in parameters)
items.Add(String.Concat(name, "=", System.Web.HttpUtility.UrlEncode(parameters[name])));
return String.Join("&", items.ToArray());
}
Присоединиться к NameValueCollection в querystring в С# использует выражение лямбда, которое выглядит хорошо, но я не уверен, что это эффективный код.
private static string JoinNvcToQs(NameValueCollection qs)
{
return string.Join("&", Array.ConvertAll(qs.AllKeys, key => string.Format("{0}={1}", HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(qs[key]))));
}