C# 如果查询字符串有多个值,如何返回该字符串的第一个值?

C# 如果查询字符串有多个值,如何返回该字符串的第一个值?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,考虑这样一个url: http://host.com?q=1&o=2&q=1 如果我运行Request.QueryString[“q”],我会得到两次值 如果我运行Request.QueryString[“q”].FirstOrDefault().ToString()我似乎得到了“2” 如果有多个值,如何返回查询字符串的第一个值?不确定microsoft如何处理这件事,我看到的是,如果我们用多个值传递同一个键,那么.NET framework将值视为逗号分隔的字符串 i、 e

考虑这样一个url:

http://host.com?q=1&o=2&q=1

如果我运行
Request.QueryString[“q”]
,我会得到两次值

如果我运行
Request.QueryString[“q”].FirstOrDefault().ToString()
我似乎得到了“2”


如果有多个值,如何返回查询字符串的第一个值?

不确定microsoft如何处理这件事,我看到的是,如果我们用多个值传递同一个键,那么.NET framework将值视为逗号分隔的字符串

i、 e

如果查询类似于“?q=10&o=2&q=11”

然后

获取第一个值的唯一方法是使用逗号分隔

Request.QueryString["q"].Split(',')[0]

如果有人有同样的问题。 试试这个:
Request.QueryString.GetValues(“q”)?.FirstOrDefault()


这应该是另一个
&
结尾吗?@NiMA有时这些事情超出了你的想象control@NiMa有几种方法可以实现这一点,但通常都来自于
或具有相同
名称的相关复选框列表,例如在调查中“早餐吃什么-勾选一个或多个选项”@NiMa我们可以多次使用相同名称的查询字符串,比如/page.aspx?ProductID=1&ProductID=15&ProductID=25我不明白您是如何从第二个代码片段中获得
2
Request.QueryString["q"].Split(',')[0]
var count=0;
var twince=string.Empty;
foreach(var item in Request.QueryString["q"])
{
     twince=item;
     count++;
     if(count==2)
        break;
}
var twince=Request.QueryString["q"].Split(',')[1];
var first=QueryString["q"].FirstOrDefault;
var twince=Request.QueryString["q"].FirstOrDefault(frs=>frs!=first);