最近在研究HttpRequest类,发现里面的很多属性都返回一个NameValueCollection对象,今天再来了解一下这个神秘的对象。

随便写了个例子,发现跟HashTable类似。但是这个东西有点怪,就是当存在一个key的时候,你在add的话,会追加进当前key中。而不是简单替换。

            NameValueCollection nvc = new NameValueCollection();
nvc.Add("第一个", "刘德华");
nvc.Add("第二个", "张学友");
nvc.Add("第三个", "郭富城");
nvc.Add("第四个", "黎明");
foreach (string str in nvc)
{
Response.Write(str + ":" + nvc[str] + "; ");
}

浏览器输出:

    

下面通过MSDN来详细了解下这个类。

一、共有属性

  AllKeys  该属性可以获取NameValueCollection 中的所有键。返回一个字符串数组。

  Count   该属性获取NameValueCollection包含键值对的数目,返回一个int。

  Item     该属性表明NameValueCollection可以通过索引访问,如nvc[1],nvc["key"].

  Keys     该属性获取 NameObjectCollectionBase.KeysCollection 实例,该实例包含 NameObjectCollectionBase 实例中的所有键。

二、受保护属性

  IsReadOnly  获取或设置一个值,通过该值指示 NameObjectCollectionBase 实例是否为只读的。

三、方法

  Add    将项添加到当前 NameValueCollection。例如:一个参数是将一个NameValueCollection复制到当前NameValueCollection,两个就是一个键值对。

  Clear    使缓存数组无效,并清空NameValueCollection。

  CopyTo  从目标数组的指定索引处开始将整个 NameValueCollection 复制到兼容的一维 Array。

  Get    获取 NameValueCollection 中指定项的值,可以通过key或索引号访问。

  GetEnumerator   返回循环访问 NameObjectCollectionBase 的枚举数。

  GetKey   获取 NameValueCollection 的指定索引处的键。

  GetValues 获取 NameValueCollection 中指定项的值。返回一个字符串数组,为什么要返回一个数组呢?因为一个值里面可能会包括多个项。

  HasKeys  获取一个值,该值指示 NameValueCollection 是否包含非空引用的键。即有键值对且键不为null就返回true,否则返回false。可用于判断对象是否为空。

  Remove  移除 NameObjectCollectionBase 实例中具有指定键的项。只能够根据键key移除项,不能用索引移除。

  Set     根据键值对重新设置一个项目。Set("第一个","刘德华");

  OnDeserialization  实现 ISerializable 接口,并在完成反序列化之后引发反序列化事件。

NameValueCollection类的更多相关文章

  1. NameValueCollection类集合

    1.NameValueCollection类集合是基于 NameObjectCollectionBase 类. 但与 NameObjectCollectionBase 不同,该类在一个键下存储多个字符 ...

  2. NameValueCollection类读取配置信息

    C#中的NameValueCollection类读取配置信息,大家可以参考下.   我首先介绍配置文件中的写法: 1.在VS2015中的工程下建立一个控制台应用程序,其config文件默认名称为App ...

  3. NameValueCollection详解

    1.NameValueCollection类集合是基于 NameObjectCollectionBase 类. 但与 NameObjectCollectionBase 不同,该类在一个键下存储多个字符 ...

  4. (转)C# NameValueCollection集合

    1.NameValueCollection类集合是基于 NameObjectCollectionBase 类. 但与 NameObjectCollectionBase 不同,该类在一个键下存储多个字符 ...

  5. C# NameValueCollection集合 .

    案例: NameValueCollection nameValueCollection = Request.Params;//获得连接地址中的所有参数 //获取各个参数,eg:            ...

  6. HttpRequest 类

    关于此类的介绍:查看HttpRequest类 点击查看:HttpRequest中方法的封装 跟这个类对应的HttpResponse类 定义:使 ASP.NET 能够读取客户端在 Web 请求期间发送的 ...

  7. C# NameValueCollection集合 (转)

    1.NameValueCollection类集合是基于 NameObjectCollectionBase 类. 但与 NameObjectCollectionBase 不同,该类在一个键下存储多个字符 ...

  8. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  9. C# - 集合类

    C#的集合类命名空间介绍: // 程序集 mscorlib.dll System.dll System.Core.dll // 命名空间 using System.Collections:集合的接口和 ...

随机推荐

  1. spring常用的连接池属性文件配置

    (一) DBCP 引入jar文件 commons-dbcp-1.2.1.jar commons-pool-1.3.jar二个包. spring配置文件 <bean id="dataSo ...

  2. 4.MySQL连接并选择数据库(SQL & C)

    在连接了MySQL数据库之后,可以通过SQL命令或者C.PHP.JAVA等程序来指定需要操作的数据库.这里主要介绍SQL命令和相应的C程序. 首先创建用户rick(赋予所有权限) mysql> ...

  3. 避免ajax请求过多,导致内存溢出,请求之后回收资源

    php试题网 http://phpshiti.com/ http://www.jb51.net/article/30458.htm success: function (data, textStatu ...

  4. Openstack安装

    作者:陈沙克 Openstack发展很猛,很多朋友都很认同,2013年,会很好的解决OpenStack部署的问题,让安装,配置变得更加简单易用. 很多公司都投入人力去做这个,新浪也计划做一个Opens ...

  5. 云盾正常扫描云服务器的IP是什么

    问题:云盾正常扫描云服务器的IP是什么?   解答:云盾扫描云服务器的的IP段固定为    42.120.145.0/24 110.75.105.0/24 110.75.185.0/24 110.75 ...

  6. 51nod贪心算法入门-----活动安排问题2

    题目大意就是给几个活动,问要几个教室能够弄完. 这个题目的想法就是把活动的开始——结束的时间看做是数轴上的一段线段,教室的个数就是在某点的时间厚度,求最大的时间厚度就是所需要的教室个数. #inclu ...

  7. 设置nginx禁止通过IP访问服务器的方法

    在Nginx上设置禁止通过IP访问服务器,只允许通过域名访问,以避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网. nginx的默认虚拟主机允许用户通过IP访问,或者通过未设置的域名访问 ...

  8. 用javascript快速清空你的人人时间轴、状态和分享

    博客已经迁移到www.imyzf.com,本站不再更新,请谅解! 现在玩人人的人越来越少了,很多人担心不玩以后东西放上面不安全..我也有同样的想法,但是手动删除上百条东西,太累了,于是写了些javas ...

  9. Style 的优先级

    Dependency Property(简称DP)是WPF的核心,Style就是基于Dependency Property的,关于DP的内幕,请参见深入WPF--依赖属性.Style中的Setter就 ...

  10. Binding的源和路径

    书上写着:Binding的源也就是数据的源头.Binding对于源的要求很简单-只要他是一个对象!并且通过属性(Property)公开自己的数据,它就可以作为Binding的源了.就像上一篇我写的那个 ...