命名空间System.Collections.Generic中有两个非常重要,而且常用的泛型集合类,它们分别是Dictionary<TKey,TValue>字典和List<T>列表。Dictionary字典通常用于保存键/值对的数据,而List列表通中用于保存可通过索引访问的对象的强类型列表。下面来总结一下,用代码来演示怎么初始化,增加,修改,删除和遍历元素。

Dictionary<TKey,TValue>字典

  代码如下:

  1. namespace DictionaryDemo1
    {
    class Program
    {
    static void Main(string[] args)
    {
    //创建Dictionary<TKey,TValue>对象
    Dictionary<string, string> openWith = new Dictionary<string, string>();
  2.  
  3. //添加元素到对象中,共有两种方法。注意,字典中的键不可以重复,但值可以重复。
    //方法一:使用对象的Add()方法
    openWith.Add("txt", "notepad.exe");
    openWith.Add("bmp", "paint.exe");
    openWith.Add("dib", "paint.exe");
    openWith.Add("rtf", "wordpad.exe");
  4.  
  5. //方法二:使用索引器Indexer
    //openWith["txt"] = "notepad.exe";
    //openWith["bmp"] = "paint.exe";
    //openWith["dib"] = "paint.exe";
    //openWith["rtf"] = "wordpad.exe";
  6.  
  7. //增加元素,注意增加前必须检查要增加的键是否存在使用ContainsKey()方法
    if (!openWith.ContainsKey("ht"))
    {
    openWith.Add("ht", "hypertrm.exe");//或openWith["ht"] = "hypertrm.exe";
    Console.WriteLine("增加元素成功!Key={0},Value={1}","ht",openWith["ht"]);
    }
  8.  
  9. //删除元素,使用Remove()方法
    if (openWith.ContainsKey("rtf"))
    {
    openWith.Remove("rtf");
    Console.WriteLine("删除元素成功!键为rtf");
    }
  10.  
  11. if (!openWith.ContainsKey("rtf"))
    {
    Console.WriteLine("Key=\"rtf\"的元素找不到!");
    }
  12.  
  13. //修改元素,使用索引器
    if (openWith.ContainsKey("txt"))
    {
    openWith["txt"] = "notepadUpdate.exe";
    Console.WriteLine("修改元素成功!Key={0},Value={1}", "txt", openWith["txt"]);
    }
  14.  
  15. //遍历元素,因为该类实现了IEnumerable接口,所以可以使用foreach语句,注意元素类型是 KeyValuePair(Of TKey, TValue)
    foreach (KeyValuePair<string, string> kvp in openWith)
    {
    Console.WriteLine("Key={0},Value={1}",kvp.Key,kvp.Value);
    }
  16.  
  17. Console.WriteLine("遍历元素完成!");
    Console.ReadKey();
    }
    }
    }

  程序输出结果:

List<T>列表

  代码如下:

  1. namespace ListDemo1
    {
    class Program
    {
    static void Main(string[] args)
    {
    //创建List<T>列表对象
    List<string> dinosaurs = new List<string>();
  2.  
  3. //增加元素到列表(或称为初始化),注意初始化时不能使用索引器,因为没有增加元素之前list列表是空的
    dinosaurs.Add("Tyrannosaurus");
    dinosaurs.Add("Amargasaurus");
    dinosaurs.Add("Mamenchisaurus");
    dinosaurs.Add("Deinonychus");
    dinosaurs.Add("Compsognathus");
  4.  
  5. //一个重要属性
    Console.WriteLine("列表中的元素数为: {0}", dinosaurs.Count);//获取 List 中实际包含的元素数
  6.  
  7. //插入元素,使用Insert()方法
    dinosaurs.Insert(2, "Compsognathus");//将元素插入到指定索引处,原来此位置的元素后移
    Console.WriteLine("在索引为2的位置插入了元素{0}",dinosaurs[2]);
  8.  
  9. //删除元素,使用Remove()方法
    dinosaurs.Remove("Compsognathus");//从 List 中移除特定对象的第一个匹配项
    Console.WriteLine("删除第一个名为Compsognathus的元素!");
  10.  
  11. //修改元素,使用索引器
    dinosaurs[0] = "TyrannosaurusUpdate";
    Console.WriteLine("修改索引为0的元素成功!");
  12.  
  13. //遍历元素,使用foreach语句,元素类型为string
    foreach (string dinosaur in dinosaurs)
    {
    Console.WriteLine(dinosaur);
    }
  14.  
  15. Console.WriteLine("遍历元素完成!");
    Console.ReadKey();
    }
    }
    }

  程序输出结果:

 
来源:http://www.cnblogs.com/mcgrady/archive/2012/03/03/2376224.html

你能熟练使用Dictionary字典和List列表吗?(转)的更多相关文章

  1. 关于Dictionary字典和List列表

    命名空间System.Collections.Generic中有两个非常重要,而且常用的泛型集合类,它们分别是Dictionary<TKey,TValue>字典和List<T> ...

  2. (转)C#中的Dictionary字典类介绍

    关键字:C# Dictionary 字典 作者:txw1958原文:http://www.cnblogs.com/txw1958/archive/2012/11/07/csharp-dictionar ...

  3. C#中的Dictionary字典类介绍

      Dictionary字典类介绍 必须包含名空间System.Collection.Generic    Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)    键必须是 ...

  4. dictionary(字典)

    dictionary(字典):   字典对象   字典是一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划.字母来查对应页的详细内容. 1.      dic={"n ...

  5. C# Dictionary 字典

    C#中的Dictionary字典类介绍   关键字:C# Dictionary 字典 作者:txw1958原文:http://www.cnblogs.com/txw1958/archive/2012/ ...

  6. Python dictionary 字典 常用法

    Python dictionary 字典 常用法 d = {} d.has_key(key_in)       # if has the key of key_in d.keys()          ...

  7. 上传程序Dictionary 字典 哈希--多读一写锁ReaderWriterLock

    //上传程序Dictionary 字典 哈希 /// <summary> /// 车辆控制信息哈斯表,Key是终端号,Value是车辆信息控制对象 /// </summary> ...

  8. 04.Dictionary字典键值对集合

    Dictionary字典键值对集合和Hashtable键值对集合的功能非常类似, 只是在声明的时候,必须为其制定值的类型. 示例代码: namespace _11.Dictionary字典集合的学习 ...

  9. JavaScript数据结构——集合、字典和散列表

    集合.字典和散列表都可以存储不重复的值. 在集合中,我们感兴趣的是每个值本身,并把它当作主要元素.在字典和散列表中,我们用 [键,值] 的形式来存储数据. 集合(Set 类):[值,值]对,是一组由无 ...

随机推荐

  1. Sql Server之旅——第四站 你必须知道的非聚集索引扫描

    非聚集索引,这个是大家都非常熟悉的一个东西,有时候我们由于业务原因,sql写的非常复杂,需要join很多张表,然后就泪流满面了...这时候就 有DBA或者资深的开发给你看这个猥琐的sql,通过执行计划 ...

  2. 【JSP】JSP基础学习记录(一)—— 基础介绍以及3个编译指令

    序: 从实现到现在一直是以.net为主,但偶尔也会参与一些其他语言的项目.最近需要对一个Java Web项目进行二次开发,一直没学习过JSP所以买了几本书自学试试.参考资料为<轻量级Java E ...

  3. Oracle视图分类及各种操作讲解(超级好文)

    目录:一.视图的定义: 二.视图的作用: 三.创建视图: 1.权限 2.语法 3.1  创建简单视图   3.2  创建连接视图  3.2.1 连接视图定义  3.2.2 创建连接视图  3.2.3 ...

  4. mysql 远程访问控制

    如需要让192.168.2.3的test用户可以访问本机所有数据库,mysql命令如下 mysql>GRANT ALL PRIVILEGES ON *.* TO 'test'@'192.168. ...

  5. height:100%不起作用(无效),div全屏

    当父容器是body时,height:100%不起作用(无效),解决办法:在css代码段中添加 html, body{ margin:0; height:100%; } 实现div全屏的时候需要上面那段 ...

  6. 怎么使PUTTY一直连接

    如何才能保证PUTTY一直连接,即使我们好长时间不去敲命令,也让它一直连接着? PuTTY的设置方法是:在Connection里面有个Seconds between keepaliaves.这里就是每 ...

  7. Linux network driver

    一.常见问题 1)2.6.32内核不兼容I219网卡 http://exxactcorp.com/blog/how-to-installconfigure-intel-i219-network-ada ...

  8. 二:C语言(分之结构)

    一:if语句 二:while语句 #include <stdio.h> int main() { ; i=; ) //循环条件应该是什么呢? { sum=sum+i; i++ ; //这里 ...

  9. Interlocked系列函数线程同步的缺陷

    1. Code int Work() { while (m_lInterlockedData < 10) { InterlockedIncrement(&m_lInterlockedDa ...

  10. [转]TextArea设置MaxLength属性最大输入值的js代码

    标准的DHTML文档中TEXTAREA的MAXLENGTH属性默认情况下不起作用,只有当事件发生时才起作用 如下:http://spiderscript.net/site/spiderscript/e ...