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

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

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

ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов Π² список Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList увСличиваСтся автоматичСски ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ надобности. Π’Π°ΠΊ, Ссли тСкущая Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ, Ρ‚ΠΎ ΠΎΠ½Π° соотвСтствСнно увСличиваСтся. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ указания Смкости ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList ΠΏΡ€ΠΈ Π΅Π΅ создании Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² сниТСнии ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. РазумССтся, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ цСлСсообразно лишь Π² Ρ‚ΠΎΠΌ случаС, Ссли Π·Π°Ρ€Π°Π½Π΅Π΅ извСстно, сколько элСмСнтов трСбуСтся Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π½Π΅ΠΉ.

Π’ классС SortedList опрСдСляСтся ряд собствСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² интСрфСйсах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ. НСкоторыС ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² этого класса пСрСчислСны Π² Ρ‚Π°Π±Π». 25.6. Π’Π°ΠΊ, Ссли трСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, содСрТится Π»ΠΈ ΠΊΠ»ΡŽΡ‡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList, вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ContainsKey(). А Ссли трСбуСтся Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, хранится Π»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList, вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ContainsValue(). Для пСрСчислСния содСрТимого ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList слуТит ΠΌΠ΅Ρ‚ΠΎΠ΄ GetEnumerator(), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° IDictionaryEnumerator. Напомним, Ρ‡Ρ‚ΠΎ IDictionaryEnumerator β€” это ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для пСрСчислСния содСрТимого ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранятся ΠΏΠ°Ρ€Ρ‹ "ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅". И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, для получСния синхронизированной ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ коллСкция Ρ‚ΠΈΠΏΠ° SortedList, вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Synchronized().


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


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


public virtual bool ContainsKey(object key) - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList содСрТится ΠΊΠ»ΡŽΡ‡ key, Π° ΠΈΠ½Π°Ρ‡Π΅ β€” логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false

public virtual bool ContainsValue(object value) - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList содСрТится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ value, Π° ΠΈΠ½Π°Ρ‡Π΅ β€” логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false

public virtual object GetBylndex(int index) - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎ индСксу index

public virtual IDictionaryEnumerator GetEnumerator() - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ для Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒ Ρ‚ΠΈΠΏΠ° IDictionaryEnumerator

public virtual object GetKey(int index) - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎ индСксу index

public virtual IList GetKeyList() - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° SortedList с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ, хранящимися Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList

public virtual IList GetValueList() - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° SortedList со значСниями, хранящимися Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList

public virtual int IndexOfKey(object key) - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΊΠ»ΡŽΡ‡Π° key. Если искомый ΠΊΠ»ΡŽΡ‡ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½, возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1

public virtual int IndexOfValue(object value) - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния значСния value Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Если искомоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ, возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1

public virtual void SetBylndex(int index, object  value) - УстанавливаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу index Ρ€Π°Π²Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ value

public static SortedList Synchronized(SortedList list) - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ синхронизированный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° list

public virtual void TrimToSize() - УстанавливаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Capacity Ρ€Π°Π²Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ свойства Count


ΠšΠ»ΡŽΡ‡ ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами. Π’ частности, для получСния значСния ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ индСксу слуТит ΠΌΠ΅Ρ‚ΠΎΠ΄ GetByIndex(), Π° для установки значСния ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ индСксу β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ SetByIndex(). Для извлСчСния ΠΊΠ»ΡŽΡ‡Π° ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ индСксу вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ GetKey(), Π° для получСния списка ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ индСксу β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ GetKeyList(). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для получСния списка всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ слуТит ΠΌΠ΅Ρ‚ΠΎΠ΄ GetValueList(). Для получСния индСкса ΠΊΠ»ΡŽΡ‡Π° вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ IndexOfKey(), Π° для получСния индСкса значСния β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ IndexOfValue(). БСзусловно, Π² классС SortedList Ρ‚Π°ΠΊΠΆΠ΅ поддСрТиваСтся индСксатор, опрСдСляСмый Π² интСрфСйсС IDictionary ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ.

Π’ классС SortedList доступны Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ свойства, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅Ρ… интСрфСйсах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ. Как ΠΈ Π² классС Hashtable, Π² Π΄Π°Π½Π½ΠΎΠΌ классС особая Ρ€ΠΎΠ»ΡŒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π΄Π²ΡƒΠΌ свойствам, Keys ΠΈ Values, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList. Π­Ρ‚ΠΈ свойства ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² интСрфСйсС IDictionary ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.


public virtual ICollection Keys { get; }

public virtual ICollection Values { get; }


ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ слСдования ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ порядок ΠΈΡ… располоТСния Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList.

Аналогично ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Hashtable, ΠΏΠ°Ρ€Ρ‹ "ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅" ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° SortedList Π² Ρ„ΠΎΡ€ΠΌΠ΅ структуры Ρ‚ΠΈΠΏΠ° DictionaryEntry, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, доступ ΠΊ ΠΊΠ»ΡŽΡ‡Π°ΠΌ ΠΈ значСниям осущСствляСтся ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ свойств, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² классС SortedList.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ дСмонстрируСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ класса SortedList. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ класса Hashtable, вмСсто ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ класс SortedList. Глядя Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сами ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ список ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ оказываСтся отсортированным ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ.


// ΠŸΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ класса SortedList.

using System;

using System.Collections;


class SLDemo {

  static void Main() {

    // Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ отсортированный список.

    SortedList si = new SortedList();


    // Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты Π² список.

    si.Add("Π·Π΄Π°Π½ΠΈΠ΅", "ΠΆΠΈΠ»ΠΎΠ΅ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅");

    si.Add("Π°Π²Ρ‚ΠΎΠΌΠ°ΡˆΠΈΠ½Π°", "транспортноС срСдство");

    si.Add("ΠΊΠ½ΠΈΠ³Π°", "Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… слов");

    si.Add("яблоко", "ΡΡŠΠ΅Π΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠ»ΠΎΠ΄");


    // Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСксатора,

    si["Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΡ€"] = "ΡΠ΅Π»ΡŒΡΠΊΠΎΡ…ΠΎΠ·ΡΠΉΡΡ‚Π²Π΅Π½Π½Π°Ρ машина";


    // ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

    ICollection с = si.Keys;


    // Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ для получСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

    Console.WriteLine("Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ списка ΠΏΠΎ индСксатору.");

    foreach(string str in с)

      Console.WriteLine(str + ": " + si[str]);


    Console.WriteLine();


    // ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ список, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ цСлочислСнныС индСксы.

    Console.WriteLine("Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ списка ΠΏΠΎ цСлочислСнным индСксам.");

    for(int i=0; i < si.Count; i++)

      Console.WriteLine(si.GetByIndex(i)) ;


    Console.WriteLine() ;


    // ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ цСлочислСнныС индСксы элСмСнтов списка.

    Console.WriteLine("ЦСлочислСнныС индСксы элСмСнтов списка.");

    foreach(string str in с)

      Console.WriteLine(str + ": " + si.IndexOfKey(str));

  }

}


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


Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ списка ΠΏΠΎ индСксатору.

Π°Π²Ρ‚ΠΎΠΌΠ°ΡˆΠΈΠ½Π°: транспортноС срСдство

Π·Π΄Π°Π½ΠΈΠ΅: ΠΆΠΈΠ»ΠΎΠ΅ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅

ΠΊΠ½ΠΈΠ³Π°: Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… слов

Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΡ€: ΡΠ΅Π»ΡŒΡΠΊΠΎΡ…ΠΎΠ·ΡΠΉΡΡ‚Π²Π΅Π½Π½Π°Ρ машина

яблоко: ΡΡŠΠ΅Π΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠ»ΠΎΠ΄


Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ списка ΠΏΠΎ цСлочислСнным индСксам.

транспортноС срСдство

ΠΆΠΈΠ»ΠΎΠ΅ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅

Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… слов

ΡΠ΅Π»ΡŒΡΠΊΠΎΡ…ΠΎΠ·ΡΠΉΡΡ‚Π²Π΅Π½Π½Π°Ρ машина

ΡΡŠΠ΅Π΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠ»ΠΎΠ΄


ЦСлочислСнныС индСксы элСмСнтов списка.

Π°Π²Ρ‚ΠΎΠΌΠ°ΡˆΠΈΠ½Π°: 0

Π·Π΄Π°Π½ΠΈΠ΅: 1

ΠΊΠ½ΠΈΠ³Π°: 2

Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΡ€: 3

яблоко: 4


Класс Stack

Как Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ извСстно Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ, стСк прСдставляСт собой список, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ "ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΡˆΠ΅Π» β€” послСдним обслуТСн". Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия стСка ΠΌΠΎΠΆΠ½ΠΎ наглядно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π³ΠΎΡ€ΠΊΠΈ Ρ‚Π°Ρ€Π΅Π»ΠΎΠΊ, стоящих Π½Π° столС. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‚Π°Ρ€Π΅Π»ΠΊΠ°, поставлСнная Π² эту Π³ΠΎΡ€ΠΊΡƒ, извлСкаСтся ΠΈΠ· Π½Π΅Π΅ послСднСй. Π‘Ρ‚Π΅ΠΊ относится ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых Π²Π°ΠΆΠ½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅. Он Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ примСняСтся, срСди ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, Π² систСмном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии, компиляторах, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… отслСТивания Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС Π½Π° основС искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°