Dictionary

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值