Герберт Шилдт - C# 4.0 полное руководство - 2011
- Название:C# 4.0 полное руководство - 2011
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0 полное руководство - 2011 краткое содержание
C# 4.0 полное руководство - 2011 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
public
key)
bool
ContainsKey(TKey
Возвращает логическое значение true,если вызывающий словарь содержит объект key в качестве ключа; а иначе — логическое значение false
public
value)
bool
ContainsValue(TValue
Возвращает логическое значение true,если вызывающий словарь содержит значение value ; в противном случае — логическое значение false
public
bool
Remove(TKey key)
Удаляет ключ key из словаря. При удачном исходе операции возвращается логическое значение true,а если ключ key отсутствует в словаре — логическое значение false
Кроме того, в классе Dictionary определяются собственные свойства, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Эти свойства приведены ниже.
Свойство
Описание
public IEqualityComparer Comparer { get; } public Dictionary. KeyCollection Keys { get; } public Dictionary. ValueCollection Values { get; }
Получает метод сравнения для вызывающего словаря
Получает коллекцию ключей -Получает коллекцию значений
Следует иметь в виду, что ключи и значения, содержащиеся в коллекции, доступны отдельными списками с помощью свойств Keys и Values. В коллекциях типа DictionaryCTKey, TValue>.KeyCollectionи Dictionary. ValueCollection реализуются как обобщенные, так и необобщенные формы интерфейсов ICollection и IEnumerable.
И наконец, в классе DictionaryCTKey, TValue> реализуется приведенный ниже индексатор, определенный в интерфейсе IDictionary
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 с = 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
В коллекции класса SortedDictionary пары "ключ-значение" хранятся таким же образом, как и в коллекции класса DictionaryCTKey, TValue>, за исключением того, что они отсортированы по соответствующему ключу. В классе SortedDictionary реализуются интерфейсы IDictionary, IDictionary, ICollection, ICollection>, IEnumerable и IEnumerable>. В классе SortedDictionary предоставляются также следующие конструкторы.
public SortedDictionary()
public SortedDictionary(IDictionary dictionary)
public SortedDictionary(IComparer comparer)
public SortedDictionary(IDictionaryCTKey, TValue> dictionary,
IComparer comparer)
В первом конструкторе создается пустой словарь, во втором конструкторе — словарь с указанным количеством элементов dictionary. В третьем конструкторе допускается указывать с помощью параметра comparer типа IComparer способ сравнения, используемый для сортировки, а в четвертом конструкторе — инициализировать словарь, помимо указания способа сравнения.
В классе SortedDictionary определен ряд методов. Некоторые наиболее часто используемые методы этого класса сведены в табл. 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 определяются собственные свойства, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Эти свойства приведены ниже.
Интервал:
Закладка: