現在、クエリ文字列パラメータを操作するためにあらゆる種類のifステートメントとサブ文字列を使用しており、より効率的な方法があるかどうかを知りたいと思っていました。
正確には、現在のURLにクエリ文字列パラメーターを追加する必要がありますが、既に存在する場合は、それを修正する必要があります。
明確にするために-私は標準の文字列操作方法を使用してこれを達成でき、現在のURLなどを取得する方法を知っています。これらのホイールがすでに配置されているかどうか疑問に思っており、それらを再発明しています。
現在、クエリ文字列パラメータを操作するためにあらゆる種類のifステートメントとサブ文字列を使用しており、より効率的な方法があるかどうかを知りたいと思っていました。
正確には、現在のURLにクエリ文字列パラメーターを追加する必要がありますが、既に存在する場合は、それを修正する必要があります。
明確にするために-私は標準の文字列操作方法を使用してこれを達成でき、現在のURLなどを取得する方法を知っています。これらのホイールがすでに配置されているかどうか疑問に思っており、それらを再発明しています。
HttpUtility.ParseQueryString(queryString);
詳細: http: //msdn.microsoft.com/en-us/library/system.web.httputility.parsequerystring.aspx
クエリ文字列をとして解析し、Dictionary<string,string>これを使用して操作し、クエリ文字列としてもう一度出力するときに、必要に応じてキーと値のペアを単純にフォーマットすることができます。
public Dictionary<string, string> ToDictionary(string queryString)
{
return queryString.TrimStart('?').Split('&').Select(qp => qp.Split(',')).ToDictionary(a => a[0], a=> a[1]);
}
public Dictionary<string, string> ToString(Dictionary<string, string> queryString)
{
return '?' + string.Join('&', queryString.Select(kvp => kvp.Key + '=' + kvp.Value));
}