如何返回查询字符串的第一个值(如果它有多个值)

本文关键字:如果 第一个 字符串 何返回 返回 查询 | 更新日期: 2023-09-27 18:34:17

考虑一个这样的网址:

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

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

如果我跑Request.QueryString["q"].FirstOrDefault().ToString()我似乎得到"2"

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

如何返回查询字符串的第一个值(如果它有多个值)

不确定微软如何处理这件事,我可以看到的是,如果我们传递具有多个值的相同键,那么 .NET 框架将值视为逗号分隔字符串,

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

然后

Request.QueryString["q"] == "10,11"

获取第一个值的唯一方法是拆分逗号。

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

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

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);