去掉重复的URL参数

lixionggao 2011-05-04 08:18:33

htttp://www.lxg.com/index.aspx?a=1&b=2&c=3&a=1&b=2&d=4
返回
htttp://www.lxg.com/index.aspx?a=1&b=2&c=3&d=4
写个方法去掉重复的参数。。
小生新手,请多多指教!
...全文
315 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
暖枫无敌 2011-05-04
  • 打赏
  • 举报
回复

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string url = "htttp://www.lxg.com/index.aspx?a=1&b=2&c=3&a=1&b=2&d=4";
Response.Write(dealUrlString(url));
}
}

public string dealUrlString(string url)
{
string prefix = url.Substring(0, url.IndexOf('?')); // url前导串
string nextfix = url.Substring(url.IndexOf('?') + 1); //url后置串
string[] strs = nextfix.Split('&');
ArrayList al = new ArrayList();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < strs.Length; i++)
{
if (al.Contains(strs[i]) == false)//判断 要拆分的字符串 中是否已经存在于这个arraylist中
{
al.Add(strs[i]);//不存在则添加进arraylist
al.Add("&");
sb.Append(strs[i]);//不存在则添加进sb中
sb.Append("&");
}
else
{
al.Remove(strs[i]);//存在则从arraylist中删除
}
}
return prefix + "?" + sb.Replace("&", "", sb.Length - 1, 1);
}
我姓区不姓区 2011-05-04
  • 打赏
  • 举报
回复

string url = "htttp://www.lxg.com/index.aspx?a=1&b=2&c=3&a=1&b=2&d=4";
Uri uri = new Uri(url);
System.Collections.Specialized.NameValueCollection nvc = System.Web.HttpUtility.ParseQueryString(uri.Query);
StringBuilder sb = new StringBuilder();
foreach (string s in nvc)
sb.AppendFormat("{0}={1}&", s, nvc[s].Split(',')[0]);
string result = url.Replace(uri.Query, "?" + sb.ToString().TrimEnd('&'));
Console.WriteLine(result);

暖枫无敌 2011-05-04
  • 打赏
  • 举报
回复
给你个思路:首先通过?截取后面的子串,然后按照&进行Split,生成一个字符串数组,遍历这个数组,找出不同的字符,然后跟?截取前得字符重新拼接一下就可以了。

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧