IDictionary
для отображения ключей-> значений, ICollection
для наборов похожих объектов.
ICollection
- это интерфейс для коллекций похожих объектов: элементы управления в форме, элементыв списке, атрибуты в теге XML и т. д.Начиная с .NET 2.0 существует универсальная версия, поэтому вы можете ссылаться на коллекцию целых чисел как ICollection<int>
.
IDictionary - интерфейс для отображения одного типа объекта или значения на другой.Он работает как настоящий словарь или телефонная книга: у вас есть «ключ» в уме, как имя человека, и когда вы ищите его, вы получаете некоторую информацию, которая идентифицируется этим ключом, например адрес или номер телефона.Каждый ключ может быть указан только один раз, хотя два разных ключа могут иметь одинаковое значение.Это также универсально в .NET 2.0, поэтому словарь, ключи которого являются строками, а значения являются целыми числами, будет IDictionary<string,int>
.
Словарь на самом деле представляет собой набор пар ключ / значение: вы можете использовать IDictionary<int,string>
как ICollection<KeyValuePair<int,string>>
, и вы можете получить доступ к ключам и значениям как отдельным коллекциям со свойствами Keys и Values.
Оба ICollection
и IDictionary
неупорядочены, что означает, что, хотя вы можете получитьэлементы в некотором порядке с помощью метода CopyTo
или цикла foreach, этот порядок не имеет особого значения и может измениться без видимой причины.В этом основное различие между ICollection
и IList
: список позволяет вам размещать элементы в определенных позициях, как в массиве, и они остаются там до тех пор, пока вы их не переместите.