有没有C#等价于PHP函数`parse_str`的功能?

3

有没有与 PHP 函数 parse_str 等效的 C# 函数?

我找不到任何相关信息,所以我写了自己的函数,但在 C# 框架中是否存在类似的函数呢?

public Dictionary<string, string> parse_str(string query) {

    Dictionary<string, string> data = new Dictionary<string, string>();

    foreach(string set in query.Trim('?').Split('&'))
        data.Add(set.Split('=')[0], set.Split('=').Length < 2 ? "" : set.Split('=')[1]);

    return data;
}​​​​​​
2个回答

6

我知道了。为什么PHP的手册看起来比C#的更容易浏览和发现呢?谢谢! - iambriansreed
Google是你的C#手册/MS文档的通用搜索工具 - 你只需要知道要搜索什么,这并不总是容易的。在你的Google搜索术语中添加一个site:msdn.microsoft.com子句会有所帮助。 - DaveRandom
很不幸,NameValueCollection 不像 Dictionary<string,string> 那样可以使用 JavaScriptSerializer().Serialize。而将 NameValueCollection 转换为 Dictionary<string,string> 的唯一方法似乎是通过 for 循环,这使得我的 parse_str 函数更加重要。C# 对于 Web 开发来说比 PHP 更好。 - iambriansreed

2

如果您想从浏览器的查询字符串中获取信息,可以使用Request.QueryString

您可以获得所有键的列表:Request.QueryString.Keys

获得一个键的值:Request.QueryString["KeyName"]


1
它比任何替代方案更好地覆盖了95%的使用情况,尽管它的功能与所要求的并不完全相同。一个站点解析除“自身”以外页面的查询字符串是相当罕见的。 - Servy
你能查找问题中提到的parse_str并解释你的答案如何相关吗? - iambriansreed
1
@iambriansreed C#不是PHP。你不会总是找到一模一样的端口。与其寻找“哪段C#代码和这段PHP代码做同样的事情”,你应该问,“我如何在C#中完成这个任务”。如果答案恰好相同,那就这样吧。 - Servy
@Servy比我更好地解释了我的答案的原因。 - Khan
@iambriansreed回答了你本应该问的问题,并解决了潜在的问题,而不仅仅是具体的技术问题。这在我的书中得到了+1的评价。 - Servy
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接