Dictionary

来源:互联网 发布:照片营养计算软件 编辑:程序博客网 时间:2024/04/28 03:25

Dictionary可以类比到Java中的HashMap类,用于存放键值对。

示例代码:

using System;using System.Collections.Generic;internal class Program{    public static void Main()    {        // create a dictionary        var employees = new Dictionary<string, int>();        // add element        employees.Add("Owen", 23);        employees.Add("Vincent", 22);        employees.Add("Lynn", 22);        employees.Add("Ricy", 21);        // if key exists, throw exception        try        {            employees.Add("Owen", 21);        }        catch (ArgumentException)        {            Console.WriteLine("An element with key 'Owen' exists");        }        // get value through key        Console.WriteLine("Owen is " + employees["Owen"] + " years old");        // set value through key        employees["Owen"] = 20;        // add element through indexer        employees["Alice"] = 25;        Console.WriteLine("Alice is " + employees["Alice"] + " years old");        // if key not exist, throw exception        try        {            Console.WriteLine("Michael is " + employees["Michael"] + " years old");        }        catch (KeyNotFoundException)        {            Console.WriteLine("No key 'Michael' found");        }        // keys always not exist, TryGetValue() is more efficient        int age = -1;        if (employees.TryGetValue("Michael", out age))        {            Console.WriteLine("Michael is " + employees["Michael"] + " years old");        }        else        {            Console.WriteLine("No key 'Michael' found");        }        // use foreach expression to iterate the diction        Console.WriteLine();        foreach(KeyValuePair<string, int> kvp in employees)            Console.WriteLine(kvp.Key + " is " + kvp.Value + " years old");        // get all keys        var keys = employees.Keys;        foreach (string key in keys)            Console.WriteLine(key);        // get all values        var ages = employees.Values;        foreach (int ageValue in ages)            Console.WriteLine(ageValue);        // remove a pair through key        employees.Remove("Alice");        if (!employees.ContainsKey("Alice"))            Console.WriteLine("Alice is removed");        Console.ReadLine();    }}

运行结果
运行结果

0 0
原创粉丝点击