You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#提取URL查询串中Group参数的所有值并存入列表

原有代码问题说明
  • string.Remove() 方法不支持直接传入字符串做匹配删除,仅支持传入索引/索引+长度参数进行截取,且字符串是不可变类型,调用修改方法后必须赋值给新变量才会生效,原有写法不会改变qs的实际值
  • 代码中遍历用的param1没有做声明定义,无法正常编译运行
正确实现方案

方案1:使用.NET内置工具类解析(推荐)

用专门的查询字符串解析类处理,自动兼容多值、转义编码等各类边界情况,.NET Framework 可引用System.Web命名空间下的HttpUtility实现:

using System.Web;
using System.Collections.Generic;
using System.Linq;

var qs = "Group=1&Group=2&Group=3&Group=4";
var parsedQuery = HttpUtility.ParseQueryString(qs);
// 直接提取所有Group参数的值到列表
List<string> groupValues = parsedQuery.GetValues("Group")?.ToList() ?? new List<string>();

// 输出验证
foreach (var s in groupValues)
{
    Console.WriteLine(s);
}

.NET Core/.NET 5+ 项目可使用Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery方法实现相同效果,无需引用System.Web

方案2:手动分割实现(无额外依赖)

如果不想引入额外命名空间,可手动拆分字符串处理:

using System.Collections.Generic;

var qs = "Group=1&Group=2&Group=3&Group=4";
List<string> groupValues = new List<string>();

// 按&分割所有键值对
var allPairs = qs.Split('&');
foreach (var pair in allPairs)
{
    // 按=拆分键和值
    var kv = pair.Split('=');
    if (kv.Length == 2 && kv[0] == "Group")
    {
        groupValues.Add(kv[1]);
    }
}

// 输出验证
foreach (var s in groupValues)
{
    Console.WriteLine(s);
}

内容的提问来源于stack exchange,提问作者JustVib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 07:45:03