Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C# 4.0 ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство - 2011Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 244

Автор Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚ Π¨ΠΈΠ»Π΄Ρ‚

public

bool

Remove(TKey key)

УдаляСт ΠΊΠ»ΡŽΡ‡ key ΠΈΠ· словаря. ΠŸΡ€ΠΈ ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΌ исходС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ возвращаСтся логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Π° Ссли ΠΊΠ»ΡŽΡ‡ key отсутствуСт Π² словарС β€” логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² классС Dictionary<TKey, TValue> ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ собствСнныС свойства, ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² интСрфСйсах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ. Π­Ρ‚ΠΈ свойства ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅.

Бвойство

ОписаниС

public IEqualityComparer<TKey> Comparer { get; } public Dictionary<TKey, TValue>. KeyCollection Keys { get; } public Dictionary<TKey, TValue>. ValueCollection Values { get; }

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ сравнСния для Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ словаря

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ -ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ значСния, содСрТащиСся Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, доступны ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ списками с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойств Keys ΠΈ Values. Π’ коллСкциях Ρ‚ΠΈΠΏΠ° DictionaryCTKey, TValue>.KeyCollectionΠΈ Dictionary<TKey, TValue>. ValueCollection Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ интСрфСйсов ICollection ΠΈIEnumerable.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π² классС DictionaryCTKey, TValue> рСализуСтся ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ индСксатор, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² интСрфСйсС IDictionary<TKey, TValueX

public TValue this[TKey key] { get; set; }

Π­Ρ‚ΠΎΡ‚ индСксатор слуТит для получСния ΠΈ установки значСния элСмСнта ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ для добавлСния Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта. Но Π² качСствС индСкса Π² Π΄Π°Π½Π½ΠΎΠΌ случаС слуТит ΠΊΠ»ΡŽΡ‡ элСмСнта, Π° Π½Π΅ сам индСкс.

ΠŸΡ€ΠΈ пСрСчислСнии ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° DictionaryCTKey, TValue> ΠΈΠ· Π½Π΅Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Ρ‹ "ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅7' Π² Ρ„ΠΎΡ€ΠΌΠ΅ структуры KeyValuePairCTKey, TValueX Напомним, Ρ‡Ρ‚ΠΎ Π² этой структурС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΄Π²Π° поля.

public TKey Key; public TValue Value;

Π’ этих полях содСрТится ΠΊΠ»ΡŽΡ‡ ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, структура KeyValuePairCTKey, TValue> Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нСпосрСдствСнно, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ срСдства класса DictionaryCTKey, TValue> ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈ значСниями ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Но ΠΏΡ€ΠΈ пСрСчислСнии ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° DictionaryCTKey, TValue>, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ†ΠΈΠΊΠ»Π΅ foreach пСрСчисляСмыми ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Ρ‹ Ρ‚ΠΈΠΏΠ° KeyValuePair.

ВсС ΠΊΠ»ΡŽΡ‡ΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° DictionaryCTKey, TValue> Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ»ΡŽΡ‡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ слуТит Π² качСствС ΠΊΠ»ΡŽΡ‡Π°. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя значСния Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ хранятся Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° DictionaryCTKey, TValue> Π² отсортированном порядкС.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ дСмонстрируСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ класса

DictionaryCTKey, TValueX

// ΠŸΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ класса ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠΉ // ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ DictionaryCTKey, TValueX

using System;

using System.Collections.Generic;

class GenDictionaryDemo { static void Main() {

// Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ для хранСния ΠΈΠΌΠ΅Π½ ΠΈ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΉ // Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠ² ΠΈ ΠΈΡ… Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹.

Dictionarycstring, double> diet =

new Dictionarycstring, double>();

// Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, diet.Add("Π‘Π°Ρ‚Π»Π΅Ρ€, Π”ΠΆΠΎΠ½", 73000); diet.Add("Π¨Π²Π°Ρ€Ρ†, Capa", 59000); diet.Add("Пайк, Вомас", 45000); diet.Add("Ѐрэнк, Π­Π΄", 99000);

// ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, Ρ‚.Π΅. Ρ„Π°ΠΌΠΈΠ»ΠΈΠΉ ΠΈ ΠΈΠΌΠ΅Π½.

ICollection<string> с = diet.Keys;

// Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ для получСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚.Π΅. Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹, foreach(string str in с)

Console.WriteLine ("{0}, Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π°: {1:C}", str, diet[str]);

}

}

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘Π°Ρ‚Π»Π΅Ρ€, Π”ΠΆΠΎΠ½, Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π°: $73,000.00 Π¨Π²Π°Ρ€Ρ†, Π‘Π°Ρ€Π°, Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π°: $59,000.00 Пайк, Вомас, Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π°: $45,000.00 Ѐрэнк, Π­Π΄, Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π°: $99,000.00

Класс SortedDictionary<TKey, TValue>

Π’ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ класса SortedDictionary<TKey, TValue> ΠΏΠ°Ρ€Ρ‹ "ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅" хранятся Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ класса DictionaryCTKey, TValue>, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ отсортированы ΠΏΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ. Π’ классС SortedDictionary<TKey, TValue> Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ интСрфСйсы IDictionary, IDictionary<TKey, TValue>, ICollection, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable ΠΈIEnumerable<KeyValuePair<TKey, TValue>>. Π’ классС SortedDictionary<TKey, TValue> ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ конструкторы.

public SortedDictionary()

public SortedDictionary(IDictionary<TKey, TValue> dictionary)

public SortedDictionary(IComparer<TKey> comparer)

public SortedDictionary(IDictionaryCTKey, TValue> dictionary,

IComparer<TKey> comparer)

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ конструкторС создаСтся пустой ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ конструкторС β€” ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ количСством элСмСнтов dictionary. Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ конструкторС допускаСтся ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° comparer Ρ‚ΠΈΠΏΠ° IComparer способ сравнСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для сортировки, Π° Π² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΌ конструкторС β€” ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, ΠΏΠΎΠΌΠΈΠΌΠΎ указания способа сравнСния.

Π’ классС SortedDictionary<TKey, TValue> ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ряд ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². НСкоторыС Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ этого класса свСдСны Π² Ρ‚Π°Π±Π». 25.18.

Π’Π°Π±Π»ΠΈΡ†Π° 25.18. НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² классС SortedDictionaryCTKey, TValue>

ΠœΠ΅Ρ‚ΠΎΠ΄    ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅

public void Add (TKey key, ДобавляСт Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΏΠ°Ρ€Ρƒ β€œΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅", TValue value)    ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌΡƒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ key ΠΈ value. Если

ΠΊΠ»ΡŽΡ‡ key ΡƒΠΆΠ΅ находится Π² словарС, Ρ‚ΠΎ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ измСняСтся, ΠΈ гСнСрируСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ArgumentException public bool ContainsKey (TKey Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли Π²Ρ‹Π·Ρ‹Π²Π°-ΠΊΠ΅Ρƒ)    ΡŽΡ‰ΠΈΠΉ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ содСрТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ key Π² качСствС клю-

_Ρ‡Π°; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false

ΠœΠ΅Ρ‚ΠΎΠ΄

ОписаниС

public bool

ContainsValue(TValue value) public bool Remove(TKey key)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ value; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false УдаляСт ΠΊΠ»ΡŽΡ‡ key ΠΈΠ· словаря. ΠŸΡ€ΠΈ ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΌ исходС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ возвращаСтся логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Π° Ссли ΠΊΠ»ΡŽΡ‡ key отсутствуСт Π² словарС β€” логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² классС SortedDictionary<TKey, TValue> ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ собствСнныС свойства, ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² интСрфСйсах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ. Π­Ρ‚ΠΈ свойства ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅.

Бвойство

ОписаниС

public Icomparer<TKey> Comparer { get; ]

public SortedDictionaryCTKey, TValue>. KeyCollection Keys { get; } public SortedDictionary<TKey, TValue>. ValueCollection Values { get; }

\ ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ сравнСния для Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ словаря ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ значСния, содСрТащиСся Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, доступны ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ списками с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойств Keys ΠΈ Values. Π’ коллСкциях Ρ‚ΠΈΠΏΠ° SortedDictionary<TKey, TValue>.KeyCollectionΠΈ SortedDictionary<TKey, TValu*e>. ValueCollection Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ интСрфСйсов ICollection ΠΈ IEnumerable.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π² классС SortedDictionary<TKey, TValue> рСализуСтся ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ индСксатор, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² интСрфСйсС IDictionary<TKey, TValueX

public TValue this[TKey key] { get; set; }

Π­Ρ‚ΠΎΡ‚ индСксатор слуТит для получСния ΠΈ установки значСния элСмСнта ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ для добавлСния Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта. Но Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π² качСствС индСкса слуТит ΠΊΠ»ΡŽΡ‡ элСмСнта, Π° Π½Π΅ сам индСкс.

ΠŸΡ€ΠΈ пСрСчислСнии ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedDictionary<TKey, TValue> ΠΈΠ· Π½Π΅Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Ρ‹ "ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅" Π² Ρ„ΠΎΡ€ΠΌΠ΅ структуры KeyValuePair<TKey, TValueX Напомним, Ρ‡Ρ‚ΠΎ Π² этой структурС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΄Π²Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… поля.

public TKey Key; public TValue Value;

Π’ этих полях содСрТится ΠΊΠ»ΡŽΡ‡ ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, структура KeyValuePair<TKey, TValue> Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нСпосрСдствСнно, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ срСдства класса SortedDictionary<TKey, TValue> ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈ значСниями ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Но ΠΏΡ€ΠΈ пСрСчислСнии ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedDictionary<TKey, TValue>, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Ρ†ΠΈΠΊΠ»Π΅ foreach, пСрСчисляСмыми ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Ρ‹ Ρ‚ΠΈΠΏΠ° KeyValuePair.

ВсС ΠΊΠ»ΡŽΡ‡ΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedDictionary<TKey, TValue> Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ»ΡŽΡ‡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ слуТит Π² качСствС ΠΊΠ»ΡŽΡ‡Π°. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя значСния Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ дСмонстрируСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ класса SortedDictionary<TKey, TValueX Π­Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ класса Dictionary<TKey, TValueX Π’ Π΄Π°Π½Π½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠ² отсортирована ΠΏΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ ΠΈ ΠΈΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слуТат Π² качСствС ΠΊΠ»ΡŽΡ‡Π°.