Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° SortedDictionary<TKey, TValueX ΠΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Dictionary<TKey, TValueX Π Π΄Π°Π½Π½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΏΠΎ ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΡΠΆΠ°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ°.
// ΠΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΉ // ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ SortedDictionary<TKey, TValueX
using System;
using System.Collections.Generic;
class GenSortedDictionaryDemo { static void Main() {
// Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΠΈ ΡΠ°ΠΌΠΈΠ»ΠΈΠΉ // ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΈΡ Π·Π°ΡΠΏΠ»Π°ΡΡ.
SortedDictionary<string, double> diet =
new SortedDictionary<string, 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 ΠΠ°ΠΉΠΊ, Π’ΠΎΠΌΠ°Ρ, Π·Π°ΡΠΏΠ»Π°ΡΠ°: $45,000.00 Π€ΡΡΠ½ΠΊ, ΠΠ΄, Π·Π°ΡΠΏΠ»Π°ΡΠ°: $99,000.00 Π¨Π²Π°ΡΡ, Π‘Π°ΡΠ°, Π·Π°ΡΠΏΠ»Π°ΡΠ°: $59,000.00
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠΏΠΈΡΠΎΠΊ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΈΡ Π·Π°ΡΠΏΠ»Π°ΡΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ ΠΊΠ»ΡΡΡ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»ΡΠΆΠΈΡ ΡΠ°ΠΌΠΈΠ»ΠΈΡ ΠΈ ΠΈΠΌΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ°.
ΠΠ»Π°ΡΡ SortedListCTKey, TValue>
Π ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° SortedList<TKey, TValue> Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°Ρ "ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅". ΠΡΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ SortedList. Π ΠΊΠ»Π°ΡΡΠ΅ SortedList<TKey, TValue> ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ IDictionary, IDictionary<TKey, TValue>, ICollection, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable ΠΈ IEnumerable<KeyValuePair<TKey, TValueΒ». Π Π°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠΈΠΏΠ° SortedList<TKey, TValue> ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ»Π°ΡΡ SortedList<TKey, TValue> ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΊΠ»Π°ΡΡΡ SortedDictionary<TKey, TValue>, Π½ΠΎ Ρ Π½Π΅Π³ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΊΠ»Π°ΡΡ SortedListcTKey, TValue> ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡ SortedDicti-onary<TKey, TValue> ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠ΅Π΅ Π²ΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ.
Π ΠΊΠ»Π°ΡΡΠ΅ SortedListcTKey, TValue> ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ°Π»ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ². ΠΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
public SortedList ()
public SortedList(IDictionaryCTKey, TValue> dictionary)
public SortedList(int capacity)
public SortedList(IComparer<TK> comparer)
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ Ρ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΠΎΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π΅ΠΌΠΊΠΎΡΡΡΡ. ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² dictionary. Π ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΠΎΡΠΌΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° capacity Π·Π°Π΄Π°Π΅ΡΡΡ Π΅ΠΌΠΊΠΎΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°. ΠΡΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΏΠΈΡΠΊΠ° Π·Π°ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½, ΡΠΎ, ΡΠΊΠ°Π·Π°Π² Π΅ΠΌΠΊΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΏΠΈΡΠΊΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°ΡΡΠ°Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ². Π Π² ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° comparer ΡΠΏΠΎΡΠΎΠ± ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅.
ΠΠΌΠΊΠΎΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠΈΠΏΠ° SortedListcTKey, TValue> ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° Π² ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠ°Ρ Π΅ΠΌΠΊΠΎΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π²ΡΡΠ°Π΅ΡΡΡ, ΡΠΎ ΠΎΠ½Π° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π΅ΠΌΠΊΠΎΡΡΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠΈΠΏΠ° SortedListcTKey, TValue> ΠΏΡΠΈ Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠ·Π΄Π΅ΡΠΆΠ΅ΠΊ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΅ΠΌΠΊΠΎΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ Π»ΠΈΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡ Π² Π½Π΅ΠΉ.
Π ΠΊΠ»Π°ΡΡΠ΅ SortedListcTKey, TValue> ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ΄ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠ΅Ρ , ΡΡΠΎ ΡΠΆΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π½Π΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΡΠ°Π±Π». 25.19. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΠ΅Π»Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ GetEnumerator (), ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΠ°Ρ "ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅", Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° KeyValuePair.
Π’Π°Π±Π»ΠΈΡΠ° 25.19. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅ SortedListCTKey, TValue>
ΠΠ΅ΡΠΎΠ΄ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
public void Add (TKey key, ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΡ βΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅",
TValue value) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ key ΠΈ value.
ΠΡΠ»ΠΈ ΠΊΠ»ΡΡ key ΡΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅, ΡΠΎ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ArgumentException public bool ContainsKey (Π’Π key) ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, Π΅ΡΠ»ΠΈ Π²Ρ
Π·ΡΠ²Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ key Π² ΠΊΠ°ΡΠ΅-_ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ°; Π° ΠΈΠ½Π°ΡΠ΅ βΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false
ΠΠ΅ΡΠΎΠ΄
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
public bool
ContainsValue(TValue value)
public IEnumerator<KeyValuePair CTKey, TValue>> GetEnumerator() public int IndexOfKey(TKey key)
public int IndexOfValue(TValue value)
public bool Remove(TKey key)
public void RemoveAt(int index) public void TrimExcessO
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, Π΅ΡΠ»ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ value; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ»ΡΡΠ° key. ΠΡΠ»ΠΈ ΠΈΡΠΊΠΎΠΌΡΠΉ ΠΊΠ»ΡΡ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ Π² ΡΠΏΠΈΡΠΊΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -1
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ value Π² Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅. ΠΡΠ»ΠΈ ΠΈΡΠΊΠΎΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ Π² ΡΠΏΠΈΡΠΊΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -1 Π£Π΄Π°Π»ΡΠ΅Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°ΡΡ βΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅β ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ key. ΠΡΠΈ ΡΠ΄Π°ΡΠ½ΠΎΠΌ ΠΈΡΡ ΠΎΠ΄Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, Π° Π΅ΡΠ»ΠΈ ΠΊΠ»ΡΡ key ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΡΠΏΠΈΡΠΊΠ΅ β Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false Π£Π΄Π°Π»ΡΠ΅Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°ΡΡ βΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅β ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ index Π‘ΠΎΠΊΡΠ°ΡΠ°Π΅Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΡ Π΅ΠΌΠΊΠΎΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΠΊΠ»Π°ΡΡΠ΅ SortedList<TK, TV> ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠ΅Ρ , ΡΡΠΎ ΡΠΆΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π½Π΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ. ΠΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½ΠΈΠΆΠ΅.
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
public int Capacity { get; set; }
ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΅ΠΌΠΊΠΎΡΡΡ
Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΡΠΎ
ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°
public IComparer<TK> Comparer { get;
β } ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ·Ρ
Π²Π°ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ°
public IList<TK> Keys { get; }
ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ
public IList<TV> Values { get; }
ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π² ΠΊΠ»Π°ΡΡΠ΅ SortedList<TKey,
TValue> ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅
ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ IDictionaryCTKey, TValueX
public TValue this[TKey key] { get; set;
} .
ΠΡΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΎΡ ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ
ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ,
Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅
ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠ»ΡΠΆΠΈΡ ΠΊΠ»ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π° Π½Π΅ ΡΠ°ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°
SortedList<TKey, TValueX ΠΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ
ΡΠ°Π½Π΅Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΠ². Π Π΄Π°Π½Π½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠΈΠΏΠ° SortedList.
// ΠΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΉ // ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ SortedList<TKey, TValue>.
using System;
using System.Collections.Generic;
class GenSLDemo {
static void Main() {
// Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° // Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΠΈ ΡΠ°ΠΌΠΈΠ»ΠΈΠΉ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΈΡ Π·Π°ΡΠΏΠ»Π°ΡΡ.
SortedList<string, double> si =
new SortedList<string, double>();
// ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, si.Add("ΠΠ°ΡΠ»Π΅Ρ, ΠΠΆΠΎΠ½", 73000); si.Add("Π¨Π²Π°ΡΡ, Capa", 59000); si.Add("ΠΠ°ΠΉΠΊ, Π’ΠΎΠΌΠ°Ρ", 45000); si.Add("Π€ΡΡΠ½ΠΊ, ΠΠ΄", 99000);
// ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ, Ρ.Π΅. ΡΠ°ΠΌΠΈΠ»ΠΈΠΉ ΠΈ ΠΈΠΌΠ΅Π½.
ICollection<string> Ρ = si.Keys;
// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Ρ.Π΅. Π·Π°ΡΠΏΠ»Π°ΡΡ, foreach(string str in Ρ)
Console.WriteLine("{0}, Π·Π°ΡΠΏΠ»Π°ΡΠ°: {1:C}", str, si[str]);
Console.WriteLine();
}
}