如何使用内部NameValueCollection

时间:2017-05-03 15:09:42

标签: c# namevaluecollection

在我尝试使用内部NameValueCollection初始化NameValueCollection之后,c#编译器说必须是NameValueCollection(string,string)。

正如我想的那样,当我像这样初始化时调用Add函数。

  • void Add(NameValueCollection c);
  • void Add(string name,string value);

基于NameValueCollection,我是否可以在一行初始化相同的方法?

原因是我必须将数据POST到HTTPAddress并使用此function

这是我的例子,不起作用:

NameValueCollection data = new NameValueCollection()
{
   { "key1", "value1"},
   { "key2", new NameValueCollection()
   {
       { "key2sub", "value"}
   }
};

1 个答案:

答案 0 :(得分:1)

不是真的。UploadValues(..)方法只需NameValueCollection,而NameValueCollection只接受string

该方法的目的是转换您的数据......

UploadValues("http://www.example.com/", new NameValueCollection()
{
   { "key1", "value1" },
   { "key2", "value2" }
};

...进入网址:

http://www.example.com/?key1=value1&key2=value2

如果您想发送更多信息,可以将分隔的字符串作为其中一个键的值,然后在另一端再分开。

UploadValues("http://www.example.com/", new NameValueCollection()
{
   { "key1", "value1" },
   { "key2", "value2,value3,value4" }
};

哪个应该产生类似的东西:

http://www.example.com/?key1=value1&key2=value2,value3,value4

但最好的解决方案是@hmnzr said in their answer(现已删除),以完全避免NameValueCollection并使用UploadString(..)方法上传序列化为JSON的自定义对象。