首页 > Windows开发 > 详细

51. C# -- Directonary字典

时间:2015-05-29 18:25:36      阅读:322      评论:0      收藏:0      [点我收藏+]

C# Dictionary 字典


说明
    必须包含名空间System.Collection.Generic
    Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)
    键必须是唯一的,而值不需要唯一的
    键和值都可以是任何类型(比如:string, int, 自定义类型,等等)
    通过一个键读取一个值的时间是接近O(1)
    键值对之间的偏序可以不定义

使用方法,代码:

using System;
using System.Collections.Generic;
namespace LambdaDemo
{
    class Program
{
        static void Main(string[] args)
{
            //定义
            Dictionary<string, string> openWith = new Dictionary<string, string>();
            //添加元素
            openWith.Add("txt","notepad.exe");
            openWith.Add("bmp", "otepad.exe");
            openWith.Add("dib", "paint.exe");
            openWith.Add("rtf", "wordpad.exe");
            //取值
            Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]);
            //更改值
            openWith["rtf"] = "winword.exe";
            Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]);
            //遍历key
            foreach (string key in openWith.Keys)
{
                Console.WriteLine("Key = {0}", key);
}
            //遍历value
            foreach (string value in openWith.Values)
{
                Console.WriteLine("value = {0}", value);
}
            //遍历value, Second Method
            Dictionary<string, string>.ValueCollection valueColl = openWith.Values;
            foreach (string s in valueColl)
{
                Console.WriteLine("Second Method, Value = {0}", s);
}
            //遍历字典
            foreach (KeyValuePair<string, string> kvp in openWith)
{
                Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
}
            //添加存在的元素
            try
{
                openWith.Add("txt", "winword.exe");
}
            catch (ArgumentException)
{
                Console.WriteLine("An element with Key = \"txt\" already exists.");
}
            //删除元素
            openWith.Remove("doc");
            if (!openWith.ContainsKey("doc"))
{
                Console.WriteLine("Key \"doc\" is not found.");
}
            Console.ReadLine();
 
            //参数为其它类型 
            Dictionary<int, string[]> OtherType = new Dictionary<int, string[]>();
            OtherType.Add(1, "1,11,111".Split(‘,‘));
            OtherType.Add(2, "2,22,222".Split(‘,‘));
            Console.WriteLine(OtherType[1][2]);

            //声明并添加元素
            Dictionary<int, DouCube> MyType = new Dictionary<int, DouCube>();
            for(int i = 1; i <= 9; i++)
{
                DouCube element = new DouCube();
                element.Code = i * 100;
                element.Page = "http://www.doucube.com/" + i.ToString() + ".html";
                MyType.Add(i, element);
}
            //遍历元素
            foreach (KeyValuePair<int, DouCube> kvp in MyType)
{
                Console.WriteLine("Index {0} Code:{1} Page:{2}", kvp.Key, kvp.Value.Code, kvp.Value.Page);
}
            Console.ReadLine();
}
        //参数为自定义类型,自定义类
        class DouCube
{
            public int Code { get { return _Code; } set { _Code = value; } } private int _Code;
            public string Page { get { return _Page; } set { _Page = value; } } private string _Page;
}

}
}

结果:
技术分享


参考:
http://www.cnblogs.com/txw1958/archive/2012/11/07/csharp-dictionary.html 

本文出自 “Ricky's Blog” 博客,请务必保留此出处http://57388.blog.51cto.com/47388/1656438

51. C# -- Directonary字典

原文:http://57388.blog.51cto.com/47388/1656438

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!