using System; using System.Collections.Generic; public class Example { public static void Main() { // Створення нового упорядкованого списку пар рядок-рядок SortedList l = new SortedList(); // Додавання пар до списку l.Add("d", "1"); l.Add("a", "2"); l.Add("b", "3"); l.Add("c", "2"); // Метод Add створює виняток, якщо новий ключ уже є в списку. try {l.Add("b", "4");} catch (ArgumentException) { Console.WriteLine("Ключ \"b\" вже є.");} // Заміна значення для певного ключа l["a"] = "4"; Console.WriteLine("Для ключа \"a\" значення x{0}",l["a"]); // При відсутності вказаного ключа, пару ключ/значення буде створено й додано l["x"] = "0"; // Звертання до відсутнього ключа породжує виключення try { Console.WriteLine("Для ключа \"z\" значення {0}.",l["z"]);} catch (KeyNotFoundException) { Console.WriteLine("Ключ \"z\" не знайдено");} // Коли програмі часто доводиться звертатися до відсутніх ключів, // TryGetValue може бути ефективнішим спосом отримання значень string value; if (l.TryGetValue("z", out value)) { Console.WriteLine("l[\"z\"] = {0}", value);} else { Console.WriteLine("Ключ \"z\" не знайдено");} if (l.TryGetValue("y", out value)) { Console.WriteLine("l[\"y\"] = {0}", value);} else { Console.WriteLine("Ключ \"y\" не знайдено");} // ContainsKey можна використати для перевірки наявності ключа if (!l.ContainsKey("z")) { l.Add("z", "9"); Console.WriteLine("l[]\"z\"] = {0}",l["z"]); } Console.Write("Пари: "); // foreach при перелічує об'єкти KeyValuePair foreach (KeyValuePair kvp in l) Console.Write(" {0}:{1}", kvp.Key, kvp.Value); // Отримання переліку значень Console.Write("\nЗначення:"); IList v = l.Values; foreach (string s in v) Console.Write(" {0}",s); // Отримання переліку ключів IList k = l.Keys; Console.Write("\nКлючі: "); foreach (string s in k) Console.Write(" {0}", s); // Властивість Values є способом отримання значень за індексом Console.WriteLine("\nl.Values[2] = {0}", l.Values[2]); // Властивість Keys є способом отримання ключів за індексом Console.WriteLine("l.Keys[2] = {0}", l.Keys[2]); // Метод Remove видаляє пару ключ/значення за ключем l.Remove("с"); if (!l.ContainsKey("doc")) Console.WriteLine("Ключ \"c\" не знайдено"); } }