我有这样的URI:
https://google.com.ua/oauth/authorize?client_id=SS&response_type=code&scope=N_FULL&access_type=offline&redirect_uri=http://localhost/Callback
Run Code Online (Sandbox Code Playgroud)
我需要一个带有解析元素的集合:
NAME VALUE
------------------------
client_id SS
response_type code
scope N_FULL
access_type offline
redirect_uri http://localhost/Callback
Run Code Online (Sandbox Code Playgroud)
确切地说,我需要一个Java等价的C#HttpUtility.ParseQueryString方法.请给我一个建议.谢谢.
是否有一种快速而简单的方法来检查NameValueCollection中是否存在密钥而不通过它进行循环?
寻找像Dictionary.ContainsKey()或类似的东西.
当然,有很多方法可以解决这个问题.只是想知道是否有人可以帮助划伤我的大脑痒.
我应该使用Dictionary <string,string>而不是NameValueCollection的任何原因?
(在C#/ .NET Framework中)
选项1,使用NameValueCollection:
//enter values:
NameValueCollection nvc = new NameValueCollection()
{
{"key1", "value1"},
{"key2", "value2"},
{"key3", "value3"}
};
// retrieve values:
foreach(string key in nvc.AllKeys)
{
string value = nvc[key];
// do something
}
Run Code Online (Sandbox Code Playgroud)
选项2,使用Dictionary <string,string> ...
//enter values:
Dictionary<string, string> dict = new Dictionary<string, string>()
{
{"key1", "value1"},
{"key2", "value2"},
{"key3", "value3"}
};
// retrieve values:
foreach (KeyValuePair<string, string> kvp in dict)
{
string key = kvp.Key;
string val = kvp.Value;
// do …Run Code Online (Sandbox Code Playgroud) 我有一个NameValueCollection,并希望迭代值.目前,我正在这样做,但似乎应该有一个更简洁的方法来做到这一点:
NameValueCollection nvc = new NameValueCollection();
nvc.Add("Test", "Val1");
nvc.Add("Test2", "Val1");
nvc.Add("Test2", "Val1");
nvc.Add("Test2", "Val2");
nvc.Add("Test3", "Val1");
nvc.Add("Test4", "Val4");
foreach (string s in nvc)
foreach (string v in nvc.GetValues(s))
Console.WriteLine("{0} {1}", s, v);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
在那儿?
我知道我能做到这一点
var nv = HttpUtility.ParseQueryString(req.RawUrl);
Run Code Online (Sandbox Code Playgroud)
但有没有办法将其转换回网址?
var newUrl = HttpUtility.Something("/page", nv);
Run Code Online (Sandbox Code Playgroud) 如何使NameValueCollectionLINQ查询运算符可以访问,例如where,join,groupby?
我试过以下:
private NameValueCollection RequestFields()
{
NameValueCollection nvc = new NameValueCollection()
{
{"emailOption: blah Blah", "true"},
{"emailOption: blah Blah2", "false"},
{"nothing", "false"},
{"nothinger", "true"}
};
return nvc;
}
public void GetSelectedEmail()
{
NameValueCollection nvc = RequestFields();
IQueryable queryable = nvc.AsQueryable();
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个ArgumentException告诉我源不是IEnumerable <>.
我试过了:
NameValueCollection Data = new NameValueCollection();
Data.Add("foo","baa");
string json = new JavaScriptSerializer().Serialize(Data);
Run Code Online (Sandbox Code Playgroud)
它返回:["foo"]我期望{"foo" : "baa"}
我该怎么做?
我有以下代码:
string Keys = string.Join(",",FormValues.AllKeys);
Run Code Online (Sandbox Code Playgroud)
我试图玩弄这个:
string Values = string.Join(",", FormValues.AllKeys.GetValue());
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用.
我需要类似的东西来获取所有值,但我似乎没有找到相同的代码来执行相同的操作.
PS:我不想使用foreach循环,因为它胜过第一行代码的目的.
如何将a转换Dictionary<string, string>为NameValueCollection?
我们项目的现有功能返回了一个老式的NameValueCollection,我用LINQ修改.结果应该作为一个传递NameValueCollection.
我想以通用的方式解决这个问题.任何提示?
非常简单我敢肯定,但是让我爬上墙!我在我的Web应用程序中使用了一个组件,通过添加标题"XYZComponent = true"在Web请求中标识自己 - 我遇到的问题是,您如何在视图中检查此问题?
以下不会起作用:
if (Request.Headers["XYZComponent"].Count() > 0)
Run Code Online (Sandbox Code Playgroud)
这不是:
if (Request.Headers.AllKeys.Where(k => k == "XYZComponent").Count() > 0)
Run Code Online (Sandbox Code Playgroud)
如果尚未设置标头变量,则两者都抛出异常.非常感激任何的帮助.
c# asp.net-mvc httpwebrequest namevaluecollection http-headers
c# ×7
.net ×5
asp.net ×2
collections ×2
asp.net-mvc ×1
dictionary ×1
http-headers ×1
java ×1
json ×1
linq ×1
parsing ×1
uri ×1
url ×1
url-encoding ×1