URLからキーでクエリ文字列を削除するにはどうすればよいですか?URLからKeyを使用してクエリ文字列を効率的に削除するにはどうすればよいですか?
私は以下の方法でうまくいきますが、そこにはもっと良い方法と短い方法があるのでしょうか?またはそれをより効率的に実行できる組み込みの.NETメソッド?例えば
public static string RemoveQueryStringByKey(string url, string key)
{
var indexOfQuestionMark = url.IndexOf("?");
if (indexOfQuestionMark == -1)
{
return url;
}
var result = url.Substring(0, indexOfQuestionMark);
var queryStrings = url.Substring(indexOfQuestionMark + 1);
var queryStringParts = queryStrings.Split(new [] {'&'});
var isFirstAdded = false;
for (int index = 0; index <queryStringParts.Length; index++)
{
var keyValue = queryStringParts[index].Split(new char[] { '=' });
if (keyValue[0] == key)
{
continue;
}
if (!isFirstAdded)
{
result += "?";
isFirstAdded = true;
}
else
{
result += "&";
}
result += queryStringParts[index];
}
return result;
}
私は好きそれを呼び出すことができます。
Console.WriteLine(RemoveQueryStringByKey(@"http://www.domain.com/uk_pa/PostDetail.aspx?hello=hi&xpid=4578", "xpid"));
は疑問がクリアされている願っています。
おかげで、
[URLクエリ文字列がの可能重複 - 追加、置き換え、検索、値を更新しますか?](http://stackoverflow.com/questions/1163956/url-querystring-find-replace-add-update-values) –
タグ: 'reinventing-the-wheel' ['System.Web.HttpUtility.ParseQueryString'] –
は完全な解決策も、答えられた質問にも答えません。 –