C# 如何删除所有参数';来自查询的值

C# 如何删除所有参数';来自查询的值,c#,.net,parsing,C#,.net,Parsing,我有许多查询字符串,看起来像View.aspx?type=a&boo=bar&I=1 如何删除所有参数的值,使其成为View.aspx?type=&boo=&i= 对于每个参数字符串集,都有自己的参数组合,数量为2-3 编辑:如何删除除特定集合之外的所有参数?是否要在该页面中执行此操作?为什么不在没有参数的情况下将页面转发到自身?也许我没抓住重点。想再解释一点吗?你想在那一页中这样做吗?为什么不在没有参数的情况下将页面转发到自身?也许我没抓住重点。想再解释一点吗?使用System.Uri,或Sy

我有许多查询字符串,看起来像
View.aspx?type=a&boo=bar&I=1

如何删除所有参数的值,使其成为
View.aspx?type=&boo=&i=

对于每个参数字符串集,都有自己的参数组合,数量为2-3


编辑:如何删除除特定集合之外的所有参数?

是否要在该页面中执行此操作?为什么不在没有参数的情况下将页面转发到自身?也许我没抓住重点。想再解释一点吗?

你想在那一页中这样做吗?为什么不在没有参数的情况下将页面转发到自身?也许我没抓住重点。想再解释一点吗?

使用
System.Uri
,或
System.UriBuilder

使用
System.Uri
,或
System.UriBuilder
用于所有参数

Regex.Replace(source, "=.+?(&|$)", "=$1")
要跳过参数“存档”和“boo”:

Regex.Replace(源代码),(?用于所有参数

Regex.Replace(source, "=.+?(&|$)", "=$1")
要跳过参数“存档”和“boo”:


Regex.Replace(源代码,“(?我正在使用重写System.Web.XmlSiteMapProvider.FindItemsNode来编写我自己的SiteMapProvider,而我的sitemap中的节点是动态的,只有参数名而没有值。我正在使用重写System.Web.XmlSiteMapProvider.FindItemsNode来编写我自己的SiteMapProvider,而我的sitemap中的节点是动态的,只有参数名而不是v我可以在我的任务中使用它吗?我还需要说System.Uri是阉割类,对queryI没有任何作用。我不知道你所说的“阉割类”是什么意思。System.Uri是一个不可变的类(像System.String)。要操作Uri,你需要使用UriBuilder。再次阅读你的问题,我认为没有“罐头”方法。新建Uri(“will give you back”/bar.aspx”,但它无法实现您想要的功能。您当然可以获取查询属性,使用String.split()将其拆分,然后对其进行操作。我如何将其用于我的任务?我还需要说System.Uri是阉割类,无法处理queryI不知道您的意思”castrated class“.System.Uri是一个不可变的类(如System.String)。要操作Uri,您需要使用UriBuilder。再次阅读您的问题时,我认为没有“固定”的方法可以做到这一点。新的Uri(“将还给您”/bar.aspx”当然,您可以使用String.split()对查询属性进行拆分然后对其进行操作。太棒了!是否可以适当地跳过特定的参数集及其值?即View.aspx?type=a&boo=bar&I=1&archive=true to View.aspx?type=a&boo=&I=&archive=trueAwesome!是否可以适当地跳过特定的参数集及其值?即View.aspx?type=a&boo=bar&I=1&archive=true to View.aspx?type=a&boo=&i=&archive=true