zoukankan      html  css  js  c++  java
  • 关于Dictionary字典和List列表

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

    Dictionary<TKey,TValue>字典

      代码如下:

     
    namespace DictionaryDemo1
    {
    class Program
    {
    static void Main(string[] args)
    {
    //创建Dictionary<TKey,TValue>对象
    Dictionary<string, string> openWith = new Dictionary<string, string>();

    //添加元素到对象中,共有两种方法。注意,字典中的键不可以重复,但值可以重复。
    //方法一:使用对象的Add()方法
    openWith.Add("txt", "notepad.exe");
    openWith.Add("bmp", "paint.exe");
    openWith.Add("dib", "paint.exe");
    openWith.Add("rtf", "wordpad.exe");

    //方法二:使用索引器Indexer
    //openWith["txt"] = "notepad.exe";
    //openWith["bmp"] = "paint.exe";
    //openWith["dib"] = "paint.exe";
    //openWith["rtf"] = "wordpad.exe";

    //增加元素,注意增加前必须检查要增加的键是否存在使用ContainsKey()方法
    if (!openWith.ContainsKey("ht"))
    {
    openWith.Add("ht", "hypertrm.exe");//或openWith["ht"] = "hypertrm.exe";
    Console.WriteLine("增加元素成功!Key={0},Value={1}","ht",openWith["ht"]);
    }

    //删除元素,使用Remove()方法
    if (openWith.ContainsKey("rtf"))
    {
    openWith.Remove("rtf");
    Console.WriteLine("删除元素成功!键为rtf");
    }

    if (!openWith.ContainsKey("rtf"))
    {
    Console.WriteLine("Key="rtf"的元素找不到!");
    }

    //修改元素,使用索引器
    if (openWith.ContainsKey("txt"))
    {
    openWith["txt"] = "notepadUpdate.exe";
    Console.WriteLine("修改元素成功!Key={0},Value={1}", "txt", openWith["txt"]);
    }

    //遍历元素,因为该类实现了IEnumerable接口,所以可以使用foreach语句,注意元素类型是 KeyValuePair(Of TKey, TValue)
    foreach (KeyValuePair<string, string> kvp in openWith)
    {
    Console.WriteLine("Key={0},Value={1}",kvp.Key,kvp.Value);
    }

    Console.WriteLine("遍历元素完成!");
    Console.ReadKey();
    }
    }
    }
     

      程序输出结果:

    List<T>列表

      代码如下:

     
    namespace ListDemo1
    {
    class Program
    {
    static void Main(string[] args)
    {
    //创建List<T>列表对象
    List<string> dinosaurs = new List<string>();

    //增加元素到列表(或称为初始化),注意初始化时不能使用索引器,因为没有增加元素之前list列表是空的
    dinosaurs.Add("Tyrannosaurus");
    dinosaurs.Add("Amargasaurus");
    dinosaurs.Add("Mamenchisaurus");
    dinosaurs.Add("Deinonychus");
    dinosaurs.Add("Compsognathus");

    //一个重要属性
    Console.WriteLine("列表中的元素数为: {0}", dinosaurs.Count);//获取 List 中实际包含的元素数


    //插入元素,使用Insert()方法
    dinosaurs.Insert(2, "Compsognathus");//将元素插入到指定索引处,原来此位置的元素后移
    Console.WriteLine("在索引为2的位置插入了元素{0}",dinosaurs[2]);

    //删除元素,使用Remove()方法
    dinosaurs.Remove("Compsognathus");//从 List 中移除特定对象的第一个匹配项
    Console.WriteLine("删除第一个名为Compsognathus的元素!");

    //修改元素,使用索引器
    dinosaurs[0] = "TyrannosaurusUpdate";
    Console.WriteLine("修改索引为0的元素成功!");

    //遍历元素,使用foreach语句,元素类型为string
    foreach (string dinosaur in dinosaurs)
    {
    Console.WriteLine(dinosaur);
    }

    Console.WriteLine("遍历元素完成!");
    Console.ReadKey();
    }
    }
    }
     

      程序输出结果:

  • 相关阅读:
    topcoder srm 633 div1
    HDU 4997 Biconnected (状态压缩DP)
    HDU 5013 City Tour
    BZOJ 3672 [Noi2014]购票 (熟练剖分+凸壳维护)
    BZOJ 1488: [HNOI2009]图的同构 polay
    BZOJ 1565 植物大战僵尸(最大权闭合图)
    iOS加载程序视图的方式
    内存管理2(主讲MRR)
    内存管理1
    排序算法之希尔排序
  • 原文地址:https://www.cnblogs.com/xuekai-to-sharp/p/3411822.html
Copyright © 2011-2022 走看看