为什么你不希望使用HttpUtility目前尚不清楚。你总是可以添加一个参考System.Web
并使用它:
var parsedQuery = HttpUtility.ParseQueryString(input);
Console.WriteLine(parsedQuery["q"]);
如果这不是一个选项,然后也许这种做法将有助于:
var query = input.Split('&')
.Single(s => s.StartsWith("q="))
.Substring(2);
Console.WriteLine(query);
它分割上&
并寻找一个分割结果以"q="
开头,并将位置2的子字符串返回=
后面的所有符号。假设是会有单个匹配,这对于这种情况似乎是合理的,否则将抛出异常。如果情况并非如此,则用Where
替换Single
,循环结果并在循环中执行相同的子字符串操作。
编辑:覆盖在评论中提到的情况下此更新版本可用于:
int index = input.IndexOf('?');
var query = input.Substring(index + 1)
.Split('&')
.SingleOrDefault(s => s.StartsWith("q="));
if (query != null)
Console.WriteLine(query.Substring(2));
因此,寻找与它为q后立即..... – 2011-05-21 15:26:48
要包括'HttpUtility',你只需要在项目中添加一个对'System.Web'程序集的引用。它不一定是一个asp.net应用程序。 – 2011-05-21 16:23:31