C#의 Dictionary 사전 클래스 샘플 코드 소개

黄舟
풀어 주다: 2017-05-07 10:17:14
원래의
1650명이 탐색했습니다.

설명
System.Collection.Generic 네임스페이스를 포함해야 합니다.
사전의 각 요소는 키-값 쌍입니다(키와 값이라는 두 요소로 구성됨)
키는 고유해야 하지만 값은 고유할 필요는 없습니다.
키와 값 모두 모든 유형일 수 있습니다(예: 문자열, int, 사용자 정의 유형 등).
키로 값을 읽는 시간은 O(1)에 가깝습니다
키-값 쌍 사이의 부분 순서를 정의할 필요가 없습니다

방법 사용:

    //定义
    Dictionary<string, string> openWith = new Dictionary<string, string>();
 

    //添加元素
    openWith.Add("txt", "notepad.exe");
    openWith.Add("bmp", "paint.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.");
    }
 
    //判断键存在
    if (openWith.ContainsKey("bmp")) // True 
    {
        Console.WriteLine("An element with Key = \"bmp\" exists.");
    }

    //参数为其它类型 
    Dictionary<int, string[]> OtherType = new Dictionary<int, string[]>();
    OtherType.Add(1, "1,11,111".Split(&#39;,&#39;));
    OtherType.Add(2, "2,22,222".Split(&#39;,&#39;));
    Console.WriteLine(OtherType[1][2]);
 

//参数为自定义类型

//首先定义类

    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;
    } 

    //然后声明并添加元素
    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);
    }
로그인 후 복사

일반적으로 사용되는 속성

이름 설명
Comparer 사전의 키가 동일한지 확인하는 데 사용되는 IEqualityComparer .
                                                                              using using ’ ’ s ’ ’ s ‐ ‐ ‐ ‐ 키/값의 수를 가져옵니다. Dictionary에 포함된 쌍; 항목 지정된 키와 연결된 값을 가져오거나 설정합니다. Keys Dictionary의 키가 포함된 컬렉션을 가져옵니다.
Values ​​Dictionary의 값을 포함하는 컬렉션을 가져옵니다.

일반적인 방법
이름 설명
Add 지정된 키와 값을 사전에 추가합니다.
Clear Dictionary에서 모든 키와 값을 제거합니다.
ContainsKey Dictionary에 지정된 키가 포함되어 있는지 여부를 결정합니다.
ContainsValue Dictionary에 특정 값이 포함되어 있는지 여부를 결정합니다.
Equals(Object) 지정된 객체가 현재 객체와 같은지 여부를 확인합니다. (Object에서 상속됨)
Finalize 개체가 가비지 컬렉션에서 회수되기 전에 리소스를 해제하고 다른 정리 작업을 수행할 수 있도록 합니다. (Object에서 상속됨)
GetEnumerator Dictionary를 반복하는 열거자를 반환합니다.
GetHashCode는 특정 유형의 해시 함수로 사용됩니다. (Object에서 상속됨)
GetObjectData System.Runtime.Serialization.ISerialized 인터페이스를 구현하고 Dictionary 인스턴스를 직렬화하는 데 필요한 데이터를 반환합니다.
GetType 현재 인스턴스의 유형을 가져옵니다. (Object에서 상속됨)
MemberwiseClone 현재 개체의 얕은 복사본을 만듭니다. (Object에서 상속됨)
OnDeserialization System.Runtime.Serialization.ISerialized 인터페이스를 구현하고 deserialization이 완료된 후 deserialization 이벤트를 트리거합니다.
제거 Dictionary에서 지정된 키의 값을 제거합니다.
ToString 현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
TryGetValue 지정된 키와 연결된 값을 가져옵니다.

위 내용은 C#의 Dictionary 사전 클래스 샘플 코드 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!