NameValueCollection详解

1.NameValueCollection类集合是基于 NameObjectCollectionBase 类。

但与 NameObjectCollectionBase 不同,该类在一个键下存储多个字符串值(就是键相同,值就连接起来如下例子)。该类可用于标头、查询字符串和窗体数据。
每个元素都是一个键/值对。NameValueCollection 的容量是 NameValueCollection 可以保存的元素数。
NameValueCollection 的默认初始容量为零。随着向 NameValueCollection 中添加元素,容量通过重新分配按需自动增加。
如下例子:

  1. NameValueCollection myCol = new NameValueCollection();  
  2.             myCol.Add("red""rojo");//如果键值red相同结果合并 rojo,rouge  
  3.             myCol.Add("green""verde");  
  4.             myCol.Add("blue""azul");  
  5.             myCol.Add("red""rouge");  

2.NameValueCollectionHashtable的区别

a.引用区别

hashtable:using System.Collections;

NameValueCollection:using System.Collections.Specialized

b.键是否重复

NameValueCollection:允许重复.

HashTable是键-值集合,但键不能出现重复. 

  1. Hashtable ht = new Hashtable();  
  2. ht.Add("key","value");  
  3. ht.Add("key""value1"); //出错  
  4. ht["key"] = "value1"//正确  

3.初始化NameValueCollection 

初始化NameValueCollection需引用using System.Collections.Specialized;
完整例子源码:

  1. using System;  using System.Collections;  
  2. using System.Collections.Specialized;  
  3.   
  4. namespace SamplesNameValueCollection  
  5. {  
  6.     class Program  
  7.     {  
  8.   
  9.         public static void Main()  
  10.         {  
  11.             //初始化NameValueCollection需引用using System.Collections.Specialized;  
  12.             NameValueCollection myCol = new NameValueCollection();  
  13.             myCol.Add("red""rojo");//如果键值red相同结果合并 rojo,rouge  
  14.             myCol.Add("green""verde");  
  15.             myCol.Add("blue""azul");  
  16.             myCol.Add("red""rouge");  
  17.   
  18.             // Displays the values in the NameValueCollection in two different ways.  
  19.             //显示键,值  
  20.             Console.WriteLine("Displays the elements using the AllKeys property and the Item (indexer) property:");  
  21.             PrintKeysAndValues(myCol);  
  22.             Console.WriteLine("Displays the elements using GetKey and Get:");  
  23.             PrintKeysAndValues2(myCol);  
  24.   
  25.             // Gets a value either by index or by key.  
  26.             //按索引或值获取  
  27.             Console.WriteLine("Index 1 contains the value {0}.", myCol[1]);//索引1的值  
  28.             Console.WriteLine("Key /"red/" has the value {0}.", myCol["red"]);//键为red的对应值rouge  
  29.             Console.WriteLine();  
  30.   
  31.             // Copies the values to a string array and displays the string array.  
  32.             String[] myStrArr = new String[myCol.Count];  
  33.             myCol.CopyTo(myStrArr, 0);  
  34.             Console.WriteLine("The string array contains:");  
  35.             foreach (String s in myStrArr)  
  36.                 Console.WriteLine("   {0}", s);  
  37.             Console.WriteLine();  
  38.   
  39.             //查找green键值然后删除  
  40.             myCol.Remove("green");  
  41.             Console.WriteLine("The collection contains the following elements after removing /"green/":");  
  42.             PrintKeysAndValues(myCol);  
  43.   
  44.             //清空集合  
  45.             myCol.Clear();  
  46.             Console.WriteLine("The collection contains the following elements after it is cleared:");  
  47.             PrintKeysAndValues(myCol);  
  48.   
  49.         }  
  50.         //显示键,值  
  51.         public static void PrintKeysAndValues(NameValueCollection myCol)  
  52.         {  
  53.             IEnumerator myEnumerator = myCol.GetEnumerator();  
  54.             Console.WriteLine("   KEY        VALUE");  
  55.             foreach (String s in myCol.AllKeys)  
  56.                 Console.WriteLine("   {0,-10} {1}", s, myCol[s]);  
  57.             Console.WriteLine();  
  58.         }  
  59.         //显示索引, 键,值  
  60.         public static void PrintKeysAndValues2(NameValueCollection myCol)  
  61.         {  
  62.             Console.WriteLine("   [INDEX] KEY        VALUE");  
  63.             for (int i = 0; i < myCol.Count; i++)  
  64.                 Console.WriteLine("   [{0}]     {1,-10} {2}", i, myCol.GetKey(i), myCol.Get(i));  
  65.             Console.WriteLine();  
  66.         }  
  67.     }  
  68.   
  69. }  

4.NameValueCollection遍历 

与Hashtable相似: 

  1. NameValueCollection myCol = new NameValueCollection();    
  2. myCol.Add("red""rojo");//如果键值red相同结果合并 rojo,rouge    
  3. myCol.Add("green""verde");    
  4. myCol.Add("blue""azul");  
  5. myCol["red"] = "dd";  
  6.   
  7. foreach (string key in myCol.Keys)  
  8. {  
  9.     Console.WriteLine("{0}:{1}", key, myCol[key]);  
  10. }  
  11. Console.ReadLine();  

 

 

转载于:https://www.cnblogs.com/zhangqs008/archive/2010/06/29/2341199.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一名英格兰球迷眼里的本届英格兰队

英格兰的世界杯旅程昨晚被德国终结了。身为一个英格兰的球迷的确心里不好受。比赛中兰帕德的本来可以扳平比 分的一粒进球被判无效&#xff08;难道真的“兰怕德”了&#xff1f;&#xff09;&#xff0c; 是整场比赛最大的争议点。有些人认为此球误判导致英格兰的最后大比分失…

无监督学习方法总结

文章目录1. 无监督学习方法的关系和特点1.1 各种方法之间的关系1.2 无监督学习方法1.3 基础机器学习方法1. 无监督学习方法的关系和特点 八种常用的统计机器学习方法&#xff1a; 聚类方法&#xff08;层次聚类、k均值聚类&#xff09;奇异值分解&#xff08;SVD&#xff09;…

java继承序列化_java中序列化之子类继承父类序列化

当一个父类实现Serializable接口后&#xff0c;他的子类都将自动的实现序列化。以下验证了这一点&#xff1a;package Serial;import java.io.Serializable;public class SuperC implements Serializable {//父类实现了序列化int supervalue;public SuperC(int supervalue) {th…

LeetCode 1324. 竖直打印单词

1. 题目 给你一个字符串 s。请你按照单词在 s 中的出现顺序将它们全部竖直返回。 单词应该以字符串列表的形式返回&#xff0c;必要时用空格补位&#xff0c;但输出尾部的空格需要删除&#xff08;不允许尾随空格&#xff09;。 每个单词只能放在一列上&#xff0c;每一列中也…

SubSonic中的字段付值--MakeOld Update

根据设计当MakeOld后&#xff08;在读取数据库后&#xff0c;或者手动调用&#xff09;&#xff0c;对记录(SubSonic生成的类&#xff09;属性附值时&#xff0c;Sonic会检测这个Value是否与原来的不同&#xff0c;只有值不同时才会附值成功&#xff0c;并将该列添加到DirtyCol…

java从控制台输入数组_Java将控制台输入的一行整数转成整型数组

思路&#xff1a;将一行数据按字符串的形式读取进来。首先判断输入的字符串是不是空&#xff0c;为空的话&#xff0c;则不作任何操做。其次&#xff0c;将字符串按照指定方式切分为字符串数组&#xff0c;此处是按照空格切分&#xff0c;由于输入是按空格区分的。最后&#xf…

java私有表示标识_java里面的标识符、关键字和类型

1. 注释Java中有三种注释&#xff1a;(1) // -单行注释&#xff0c;注释从“//”开始&#xff0c;终止于行尾&#xff1b;(2) -多行注释&#xff0c;注释从““结束&#xff1b;(3) -是Java特有的doc注释&#xff0c;这种注释主要是为支持JDK工具Javadoc而采用的。Javadoc能识…

在Silverlight中使用Socket进行通信(1)Socket请求-回复方式的简易数据交换

很久之前用过Socket&#xff0c;由于近期项目需要用socket传输视频流&#xff0c;早上花了半小时回顾了一下。 Socket类简要介绍 socket下提供的主要类有四个&#xff0c;分别是socket,tcpclient,tcplistener,udpclient&#xff0c;他们的作用如下&#xff1a; Socket 含有大量…

LeetCode 692. 前K个高频单词(优先队列)

1. 题目 给一非空的单词列表&#xff0c;返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。 如果不同的单词有相同出现频率&#xff0c;按字母顺序排序。 示例 1&#xff1a; 输入: ["i", "love", "leetcode", &q…

LeetCode 583. 两个字符串的删除操作(动态规划)

1. 题目 给定两个单词 word1 和 word2&#xff0c;找到使得 word1 和 word2 相同所需的最小步数&#xff0c;每步可以删除任意一个字符串中的一个字符。 示例&#xff1a; 输入: "sea", "eat" 输出: 2 解释: 第一步将"sea"变为"ea"&…

java listview控件_ListView普通列表控件的使用

Android中的列表空间非常灵活&#xff0c;可以自定义每一个列表项&#xff0c;实际上每一个列表项就是一个View&#xff0c;在Android定义了3个列表控件&#xff1a;ListView、ExpandableListView和Spinner&#xff0c;其中Spinner就是在Windows中常见的下拉列表框。ListView控…

【Kaggle】Intro to Machine Learning 第一次提交 Titanic

项目官网地址 新手可以参考这篇 8、Getting Started With Titanic&#xff0c;教你如何操作、提交等 自己简要再记录一下&#xff1a; Join the competition 各个 tab 下可以查看数据Data、代码编写Notebooks、讨论、排名、比赛规则、队伍点击 Notebooks&#xff0c;新建文…

在C#代码中执行BCS外部内容类型方法

在前面的博文中我们讨论了如何使用Business Connectivity Services对象模型栏获取已部署在SharePoint BCS中的外部内容类型。 本文中我们将学习如何获取一个ECT的BCS方法集合。并且还要通过Business Connectivity Services对象模型执行其中的Finder方法和SpecificFinder方法。…

java ndc_通过slf4j/log4j的MDC/NDC 实现日志追踪

在分布式系统或者较为复杂的系统中&#xff0c;我们希望可以看到一个客户请求的处理过程所涉及到的所有子系统\模块的处理日志。由于slf4j/log4j基本是日志记录的标准组件&#xff0c;所以slf4j/log4j成为了我的重点研究对象。slf4j/log4j支持MDC&#xff0c;可以实现同一请求的…

常用的匹配正则表达式

常用的匹配正则表达式 正则表达式用于字符串处理、表单验证等场合&#xff0c;实用高效。现将一些常用的表达式收集于此&#xff0c;以备不时之需。 匹配中文字符的正则表达式&#xff1a; [\u4e00-\u9fa5]评注&#xff1a;匹配中文还真是个头疼的事&#xff0c;有了这个表达式…

LeetCode 1091. 二进制矩阵中的最短路径(BFS)

1. 题目 在一个 N N 的方形网格中&#xff0c;每个单元格有两种状态&#xff1a;空&#xff08;0&#xff09;或者阻塞&#xff08;1&#xff09;。 一条从左上角到右下角、长度为 k 的畅通路径&#xff0c; 由满足下述条件的单元格 C_1, C_2, ..., C_k 组成&#xff1a;相邻…

java 反射的弊端_java反射机制的一些学习心得小结

概述之前在了解Spring的类加载机制的时候&#xff0c;了解了java的反射机制。但是&#xff0c;我对反射理解一直不深。也一直有点疑惑&#xff1a;Spring为什么利用反射创建对象&#xff1f;直接new对象和依靠反射创建对象有什么区别&#xff1f;什么是动态加载类&#xff1f;什…

llog

/Files/TNTZWC/zxLog.rar转载于:https://www.cnblogs.com/TNTZWC/archive/2010/07/13/1776437.html

LeetCode 1015. 可被 K 整除的最小整数(数学)

1. 题目 给定正整数 K&#xff0c;你需要找出可以被 K 整除的、仅包含数字 1 的最小正整数 N。 返回 N 的长度。如果不存在这样的 N&#xff0c;就返回 -1。 示例 1&#xff1a; 输入&#xff1a;1 输出&#xff1a;1 解释&#xff1a;最小的答案是 N 1&#xff0c;其长度为…

网站公告js

<html><head><meta http-equiv"Content-Language" content"zh-cn"><meta http-equiv"Content-Type" content"text/html; charsetgb2312"><title>网站公告滚动</title></head><body> …