Пространство имен System.Collections содержит классы и интерфейсы, которые определяют различные коллекции объектов.
| Класс | Описание |
|---|---|
ArrayList |
Служит для реализации интерфейса с помощью массива с динамическим изменением размера по требованию |
BitArray |
Управляет компактным массивом двоичных значений, представленных логическими величинами, где значение true соответствует 1, а значение false соответствует 0 |
CaseInsensitiveComparer |
Проверяет равенство двух объектов без учета регистра строк |
CaseInsensitiveHashCodeProvider |
Предоставляет хэш-код объекта, используя алгоритм хэширования, при котором не учитывается регистр строк |
CollectionBase |
Предоставляет абстрактный (MustInherit в Visual Basic) базовый класс для коллекции со строгим типом |
Comparer |
Проверяет равенство двух объектов с учетом регистра строк |
DictionaryBase |
Предоставляет абстрактный (MustInherit в Visual Basic) базовый класс для коллекции пар "ключ-значение" со строгим типом |
Hashtable |
Предоставляет коллекцию пар "ключ-значение", которые упорядочены по хэш-коду ключа |
Queue |
Предоставляет коллекцию объектов, которая обслуживается по принципу "первым пришел — первым вышел" (FIFO) |
ReadOnlyCollectionBase |
Предоставляет абстрактный (MustInherit в Visual Basic) базовый класс для коллекции со строгим типом, которая доступна только для чтения |
SortedList |
Предоставляет коллекцию пар "ключ-значение", которые упорядочены по ключам. Доступ к парам можно получить по ключу и по индексу |
Stack |
Представляет коллекцию объектов, которая обслуживается по принципу "последним пришел — первым вышел" (LIFO) |
| Интерфейс | Описание |
|---|---|
|
Определяет размер, перечислители и методы синхронизации для всех коллекций |
IComparer |
Предоставляет другим приложениям метод для сравнения двух объектов |
IDictionary |
Предоставляет коллекцию пар "ключ-значение" |
IDictionaryEnumerator |
Осуществляет нумерацию элементов словаря |
IEnumerable |
Предоставляет перечислитель, который поддерживает простое перемещение по коллекции |
IEnumerator |
Поддерживает простое перемещение по коллекции |
IHashCodeProvider |
Предоставляет хэш-код объекта, используя пользовательскую хэш-функцию |
|
Предоставляет коллекцию объектов, к которым можно получить доступ отдельно, по индексу |
| Структура | Описание |
|---|---|
DictionaryEntry |
Определяет в словаре пару "ключ-значение", которая может быть задана или получена |
Неполный перечень свойств и методов приводится ниже.
ArrayList |
Перегружен. Инициализирует новый экземпляр класса ArrayList |
Capacity |
Возвращает или задает число элементов, которое может содержать класс ArrayList |
Count |
Возвращает число элементов, которое в действительности хранится в классе ArrayList |
IsFixedSize |
Возвращает значение, показывающее, имеет ли класс ArrayList фиксированный размер |
IsReadOnly |
Возвращает значение, определяющее, доступен ли класс ArrayList только для чтения |
IsSynchronized |
Возвращает значение, определяющее, является ли доступ к классу ArrayList синхронизированным (потокобезопасным) |
Item |
Возвращает или задает элемент с указанным индексом. В C# это свойство является индексатором класса |
Add |
Добавляет объект в конец класса ArrayList |
AddRange |
Добавляет элементы интерфейса в конец класса ArrayList |
|
Перегружен. Использует алгоритм двоичного поиска для нахождения определенного элемента в отсортированном классе ArrayList или в его части |
Clear |
Удаляет все элементы из класса ArrayList |
Clone |
Создает неполную копию класса ArrayList |
Contains |
Определяет, принадлежит ли элемент классу ArrayList |
CopyTo |
Перегружен. Копирует класс ArrayList или его часть в одномерный массив |
FixedSize |
Перегружен. Возвращает обертку списка фиксированного размера, в которой элементы можно изменять, но нельзя добавлять или удалять |
GetEnumerator |
Перегружен. Возвращает перечислитель, который может осуществлять просмотр всех элементов класса ArrayList |
GetRange |
Возвращает класс ArrayList, который представляет собой подмножество элементов в исходном классе ArrayList |
IndexOf |
Перегружен. Возвращает отсчитываемый от нуля индекс первого найденного элемента в классе ArrayList или в его части |
Insert |
Вставляет элемент в класс ArrayList по указанному индексу |
InsertRange |
Вставляет элементы коллекции в класс ArrayList по указанному индексу |
|
Перегружен. Возвращает отсчитываемый от нуля индекс последнего найденного элемента в классе ArrayList или в его части |
Remove |
Удаляет первый найденный объект из класса ArrayList |
RemoveAt |
Удаляет элемент с указанным индексом из класса ArrayList |
RemoveRange |
Удаляет диапазон элементов из класса ArrayList |
Repeat |
Возвращает класс ArrayList, элементы которого являются копиями указанного значения |
Reverse |
Перегружен. Изменяет порядок элементов в классе ArrayList или в его части на обратный |
SetRange |
Копирует элементы коллекции в диапазон элементов класса ArrayList |
Sort |
Перегружен. Сортирует элементы в классе ArrayList или в его части |
ToArray |
Перегружен. Копирует элементы класса ArrayList в новый массив |
TrimToSize |
Задает значение емкости, равное действительному количеству элементов в классе ArrayList |
using System;
using System.Collections;
public class SamplesArrayList {
public static void Main() {
// Создается и инициализируется объект ArrayList.
ArrayList myAL = new ArrayList();
myAL.Add("Россия,");
myAL.Add("вперед");
myAL.Add("!");
// Свойства и значения ArrayList.
Console.WriteLine( "myAL" );
Console.WriteLine( "\tCount: {0}", myAL.Count );
Console.WriteLine( "\tCapacity: {0}", myAL.Capacity );
Console.Write( "\tValues:" );
PrintValues( myAL );
}
public static void PrintValues( IEnumerable myList )
{
// Для эффективной работы с объектом ArrayList
// создается перечислитель...
// Перечислитель обеспечивает перебор элементов.
System.Collections.IEnumerator myEnumerator
= myList.GetEnumerator(); // Перечислитель для myList
while (myEnumerator.MoveNext())
Console.Write( "\t{0}", myEnumerator.Current );
}
}
Результат:
myAL
Count: 3
Capacity: 16
Values: Россия , вперед !
Неполный перечень свойств и методов приводится ниже.
BitArray |
Перегружен. Инициализирует новый экземпляр класса BitArray, для которого могут быть указаны емкость и начальные значения |
Count |
Возвращает число элементов, которое хранится в классе BitArray |
IsReadOnly |
Возвращает значение, определяющее, доступен ли класс BitArray только для чтения |
IsSynchronized |
Возвращает значение, определяющее, является ли доступ к классу BitArray синхронизированным (потокобезопасным) |
Item |
Возвращает или задает значение бита по указанному адресу в классе BitArrayВ языке C# это свойство является индексатором класса |
Length |
Возвращает или задает число элементов в классе BitArray |
SyncRoot |
Возвращает объект, который может быть использован для синхронизации доступа к классу BitArray |
And |
Выполняет поразрядную операцию логического умножения элементов текущего класса BitArray с соответствующими элементами указанного класса BitArray |
Clone |
Создает неполную копию класса BitArray |
CopyTo |
Копирует целый класс BitArray в совместимый одномерный массив класса Array, начиная с указанного индекса конечного массива |
Get |
Возвращает значение бита по указанному адресу в классе BitArray |
GetEnumerator |
Возвращает перечислитель, который может осуществлять просмотр всех элементов класса BitArray |
Not |
Преобразовывает все двоичные значения в текущем классе BitArray таким образом, чтобы каждому элементу со значением true было присвоено значение false, а каждому элементу со значением false было присвоено значение true |
Or |
Выполняет поразрядную операцию логического сложения элементов текущего класса BitArray с соответствующими элементами указанного класса BitArray |
Set |
Задает указанное значение биту по указанному адресу в классе BitArray |
SetAll |
Задает определенное значение всем битам в классе BitArray |
Xor |
Выполняет поразрядную операцию "исключающее ИЛИ" для элементов текущего класса BitArray и соответствующих элементов указанного класса BitArray |
Пример использования:
using System;
using System.Collections;
public class SamplesBitArray {
public static void Main() {
// Creates and initializes several BitArrays.
BitArray myBA1 = new BitArray( 5 );
BitArray myBA2 = new BitArray( 5, false );
byte[] myBytes = new byte[5] { 1, 2, 3, 4, 5 };
BitArray myBA3 = new BitArray( myBytes );
bool[] myBools = new bool[5] { true, false, true, true, false };
BitArray myBA4 = new BitArray( myBools );
int[] myInts = new int[5] { 6, 7, 8, 9, 10 };
BitArray myBA5 = new BitArray( myInts );
// Displays the properties and values of the BitArrays.
Console.WriteLine( "myBA1" );
Console.WriteLine( "\tCount: {0}", myBA1.Count );
Console.WriteLine( "\tLength: {0}", myBA1.Length );
Console.WriteLine( "\tValues:" );
PrintValues( myBA1, 8 );
Console.WriteLine( "myBA2" );
Console.WriteLine( "\tCount: {0}", myBA2.Count );
Console.WriteLine( "\tLength: {0}", myBA2.Length );
Console.WriteLine( "\tValues:" );
PrintValues( myBA2, 8 );
Console.WriteLine( "myBA3" );
Console.WriteLine( "\tCount: {0}", myBA3.Count );
Console.WriteLine( "\tLength: {0}", myBA3.Length );
Console.WriteLine( "\tValues:" );
PrintValues( myBA3, 8 );
Console.WriteLine( "myBA4" );
Console.WriteLine( "\tCount: {0}", myBA4.Count );
Console.WriteLine( "\tLength: {0}", myBA4.Length );
Console.WriteLine( "\tValues:" );
PrintValues( myBA4, 8 );
Console.WriteLine( "myBA5" );
Console.WriteLine( "\tCount: {0}", myBA5.Count );
Console.WriteLine( "\tLength: {0}", myBA5.Length );
Console.WriteLine( "\tValues:" );
PrintValues( myBA5, 8 );
}
public static void PrintValues( IEnumerable myList, int myWidth )
{
System.Collections.IEnumerator myEnumerator = myList.GetEnumerator();
int i = myWidth;
while ( myEnumerator.MoveNext() )
{
if ( i <= 0 )
{
i = myWidth;
Console.WriteLine();
}
i--;
Console.Write( "\t{0}", myEnumerator.Current );
}
Console.WriteLine();
}
}
Результат:
myBA1
Count: 5
Length: 5
Values:
False False False False False
myBA2
Count: 5
Length: 5
Values:
False False False False False
myBA3
Count: 40
Length: 40
Values:
True False False False False False False False
False True False False False False False False
True True False False False False False False
False False True False False False False False
True False True False False False False False
myBA4
Count: 5
Length: 5
Values:
True False True True False
myBA5
Count: 160
Length: 160
Values:
False True True False False False False False
False False False False False False False False
False False False False False False False False
False False False False False False False False
True True True False False False False False
False False False False False False False False
False False False False False False False False
False False False False False False False False
False False False True False False False False
False False False False False False False False
False False False False False False False False
False False False False False False False False
True False False True False False False False
False False False False False False False False
False False False False False False False False
False False False False False False False False
False True False True False False False False
False False False False False False False False
False False False False False False False False
False False False False False False False False
Неполный перечень свойств и методов.
Queue |
Перегружен. Инициализирует новый экземпляр класса Queue |
Count |
Возвращает число элементов, которое хранится в классе Queue |
SyncRoot |
Получает объект, который может быть использован для синхронизации доступа к классу Queue |
Clear |
Удаляет все объекты из класса Queue |
Clone |
Создает поверхностную копию класса Queue |
Contains |
Определяет, принадлежит ли элемент классу Queue |
CopyTo |
Копирует элементы класса Queue в существующий одномерный массив класса Array по указанному адресу |
|
Удаляет и возвращает объект в начале класса Queue |
|
Добавляет объект в конец класса Queue |
GetEnumerator |
Возвращает перечислитель, который может перемещаться по классу Queue |
|
Возвращает объект в начале класса Queue, но не удаляет его |
ToArray |
Копирует элементы класса Queue в новый массив |
TrimToSize |
Задает значение емкости, равное действительному количеству элементов в классе Queue |
Пример:
using System;
using System.Collections;
public class SamplesQueue
{
public static void Main()
{
// Creates and initializes a new Queue.
Queue myQ = new Queue();
myQ.Enqueue("Россия,");
myQ.Enqueue("вперед");
myQ.Enqueue("!");
// Displays the properties and values of the Queue.
Console.WriteLine( "myQ" );
Console.WriteLine( "\tCount: {0}", myQ.Count );
Console.Write( "\tValues:" );
PrintValues( myQ );
}
public static void PrintValues( IEnumerable myCollection )
{
System.Collections.IEnumerator myEnumerator
= myCollection.GetEnumerator();
while ( myEnumerator.MoveNext() )
Console.Write( "\t{0}", myEnumerator.Current );
}
}
Результат:
myQ
Count: 3
Values: Россия , вперед !
Stack |
Перегружен. Инициализирует новый экземпляр класса Stack |
Count |
Возвращает число элементов, которое хранится в классе Stack |
IsSynchronized |
Возвращает значение, определяющее, является ли доступ к классу Stack синхронизированным (потокобезопасным) |
SyncRoot |
Возвращает объект, который может быть использован для синхронизации доступа к классу Stack |
Clear |
Удаляет все объекты из класса Stack |
Clone |
Создает неполную копию класса Stack |
Contains |
Определяет, принадлежит ли элемент классу Stack |
CopyTo |
Копирует элементы класса Stack в существующий одномерный массив класса Array, начиная с указанного индекса массива |
GetEnumerator |
Интерфейс IEnumerator для класса Stack |
|
Возвращает самый верхний объект класса Stack, но не удаляет его |
Pop |
Удаляет и возвращает верхний объект класса Stack |
Push |
Вставляет объект в начало класса Stack |
Synchronized |
Возвращает синхронизированную (потокобезопасную) обертку класса Stack |
ToArray |
Копирует элементы класса Stack в новый массив |
Класс Stack допускает в качестве действительного значение "пустая ссылка", а также допускает наличие повторяющихся элементов.
Ниже приведен пример создания и инициализации класса Stack и способ вывода его значений:
using System;
using System.Collections;
public class SamplesStack {
public static void Main()
{
// Creates and initializes a new Stack.
Stack myStack = new Stack();
myStack.Push("Hello");
myStack.Push("world");
myStack.Push("!");
// Displays the properties and values of the Stack.
Console.WriteLine( "myStack" );
Console.WriteLine( "\tCount: {0}", myStack.Count );
Console.Write( "\tValues:" );
PrintValues( myStack );
}
public static void PrintValues( IEnumerable myCollection )
{
System.Collections.IEnumerator myEnumerator = myCollection.GetEnumerator();
while ( myEnumerator.MoveNext() )
Console.Write( "\t{0}", myEnumerator.Current );
Console.WriteLine();
}
}
Результат:
myStack
Count: 3
Values: ! world Hello
Наследует интерфейс IEnumerator, который является основным для всех перечислителей. Поддерживает простое перемещение по коллекции.
Current |
Возвращает текущий элемент коллекции |
MoveNext |
Перемещает перечислитель на следующий элемент коллекции |
Reset |
Устанавливает перечислитель в исходное положение перед первым элементом коллекции |
Перечислитель позволяет считывать (только считывать!) информацию (данные) из коллекции. Перечислители не используются для изменения содержания коллекции. Для этого применяются специфические методы данной коллекции ( ).
Вновь созданный перечислитель размещается перед первым элементом коллекции. Метод Reset возвращает перечислитель обратно в положение перед первым элементом коллекции.
В этом положении обращение к свойству Current приводит к возникновению исключения. Поэтому необходимо вызвать метод MoveNext, чтобы переместить перечислитель на первый элемент коллекции до считывания значения свойства Current.
Свойство Current не меняет своего значения (возвращает ссылку на один и тот же член коллекции), пока не будет вызван метод MoveNext или Reset.
Метод MoveNext обеспечивает изменение значения свойства Current.
Завершение перемещения по коллекции приводит к установке перечислителя после последнего элемента коллекции. При этом вызов метода MoveNext возвращает значение false. Если последний вызов метода MoveNext вернул значение false, обращение к свойству Current приводит к возникновению исключения. Последовательный вызов методов Reset и MoveNext приводит к перемещению перечислителя на первый элемент коллекции.
Перечислитель действителен до тех пор, пока в коллекцию не вносятся изменения. Если в коллекцию вносятся изменения (добавляются или удаляются элементы коллекции), перечислитель становится недействительным, а следующий вызов методов MoveNext или Reset приводит к возникновению исключения InvalidOperationException.
После изменения коллекции в промежутке между вызовом метода MoveNext и новым обращением к свойству Current, свойство Current возвращает текущий элемент коллекции, даже если перечислитель уже недействителен.
Перечислитель не имеет монопольного доступа к коллекции, поэтому перечисление в коллекции не является потокобезопасной операцией. Даже при синхронизации коллекции другие потоки могут изменить ее, что приводит к созданию исключения при перечислении. Чтобы обеспечить потокобезопасность при перечислении, можно либо заблокировать коллекцию на все время перечисления, либо перехватывать исключения, которые возникают в результате изменений, внесенных другими потоками.
Пространство имен System.Collections содержит классы и интерфейсы, которые определяют различные коллекции объектов.
| Класс | Описание |
|---|---|
ArrayList |
Служит для реализации интерфейса с помощью массива с динамическим изменением размера по требованию |
BitArray |
Управляет компактным массивом двоичных значений, представленных логическими величинами, где значение true соответствует 1, а значение false соответствует 0 |
CaseInsensitiveComparer |
Проверяет равенство двух объектов без учета регистра строк |
CaseInsensitiveHashCodeProvider |
Предоставляет хэш-код объекта, используя алгоритм хэширования, при котором не учитывается регистр строк |
CollectionBase |
Предоставляет абстрактный (MustInherit в Visual Basic) базовый класс для коллекции со строгим типом |
Comparer |
Проверяет равенство двух объектов с учетом регистра строк |
DictionaryBase |
Предоставляет абстрактный (MustInherit в Visual Basic) базовый класс для коллекции пар "ключ-значение" со строгим типом |
Hashtable |
Предоставляет коллекцию пар "ключ-значение", которые упорядочены по хэш-коду ключа |
Queue |
Предоставляет коллекцию объектов, которая обслуживается по принципу "первым пришел — первым вышел" (FIFO) |
ReadOnlyCollectionBase |
Предоставляет абстрактный (MustInherit в Visual Basic) базовый класс для коллекции со строгим типом, которая доступна только для чтения |
SortedList |
Предоставляет коллекцию пар "ключ-значение", которые упорядочены по ключам. Доступ к парам можно получить по ключу и по индексу |
Stack |
Представляет коллекцию объектов, которая обслуживается по принципу "последним пришел — первым вышел" (LIFO) |
| Интерфейс | Описание |
|---|---|
|
Определяет размер, перечислители и методы синхронизации для всех коллекций |
IComparer |
Предоставляет другим приложениям метод для сравнения двух объектов |
IDictionary |
Предоставляет коллекцию пар "ключ-значение" |
IDictionaryEnumerator |
Осуществляет нумерацию элементов словаря |
IEnumerable |
Предоставляет перечислитель, который поддерживает простое перемещение по коллекции |
IEnumerator |
Поддерживает простое перемещение по коллекции |
IHashCodeProvider |
Предоставляет хэш-код объекта, используя пользовательскую хэш-функцию |
|
Предоставляет коллекцию объектов, к которым можно получить доступ отдельно, по индексу |
| Структура | Описание |
|---|---|
DictionaryEntry |
Определяет в словаре пару "ключ-значение", которая может быть задана или получена |
Неполный перечень свойств и методов приводится ниже.
ArrayList |
Перегружен. Инициализирует новый экземпляр класса ArrayList |
Capacity |
Возвращает или задает число элементов, которое может содержать класс ArrayList |
Count |
Возвращает число элементов, которое в действительности хранится в классе ArrayList |
IsFixedSize |
Возвращает значение, показывающее, имеет ли класс ArrayList фиксированный размер |
IsReadOnly |
Возвращает значение, определяющее, доступен ли класс ArrayList только для чтения |
IsSynchronized |
Возвращает значение, определяющее, является ли доступ к классу ArrayList синхронизированным (потокобезопасным) |
Item |
Возвращает или задает элемент с указанным индексом. В C# это свойство является индексатором класса |
Add |
Добавляет объект в конец класса ArrayList |
AddRange |
Добавляет элементы интерфейса в конец класса ArrayList |
|
Перегружен. Использует алгоритм двоичного поиска для нахождения определенного элемента в отсортированном классе ArrayList или в его части |
Clear |
Удаляет все элементы из класса ArrayList |
Clone |
Создает неполную копию класса ArrayList |
Contains |
Определяет, принадлежит ли элемент классу ArrayList |
CopyTo |
Перегружен. Копирует класс ArrayList или его часть в одномерный массив |
FixedSize |
Перегружен. Возвращает обертку списка фиксированного размера, в которой элементы можно изменять, но нельзя добавлять или удалять |
GetEnumerator |
Перегружен. Возвращает перечислитель, который может осуществлять просмотр всех элементов класса ArrayList |
GetRange |
Возвращает класс ArrayList, который представляет собой подмножество элементов в исходном классе ArrayList |
IndexOf |
Перегружен. Возвращает отсчитываемый от нуля индекс первого найденного элемента в классе ArrayList или в его части |
Insert |
Вставляет элемент в класс ArrayList по указанному индексу |
InsertRange |
Вставляет элементы коллекции в класс ArrayList по указанному индексу |
|
Перегружен. Возвращает отсчитываемый от нуля индекс последнего найденного элемента в классе ArrayList или в его части |
Remove |
Удаляет первый найденный объект из класса ArrayList |
RemoveAt |
Удаляет элемент с указанным индексом из класса ArrayList |
RemoveRange |
Удаляет диапазон элементов из класса ArrayList |
Repeat |
Возвращает класс ArrayList, элементы которого являются копиями указанного значения |
Reverse |
Перегружен. Изменяет порядок элементов в классе ArrayList или в его части на обратный |
SetRange |
Копирует элементы коллекции в диапазон элементов класса ArrayList |
Sort |
Перегружен. Сортирует элементы в классе ArrayList или в его части |
ToArray |
Перегружен. Копирует элементы класса ArrayList в новый массив |
TrimToSize |
Задает значение емкости, равное действительному количеству элементов в классе ArrayList |
using System;
using System.Collections;
public class SamplesArrayList {
public static void Main() {
// Создается и инициализируется объект ArrayList.
ArrayList myAL = new ArrayList();
myAL.Add("Россия,");
myAL.Add("вперед");
myAL.Add("!");
// Свойства и значения ArrayList.
Console.WriteLine( "myAL" );
Console.WriteLine( "\tCount: {0}", myAL.Count );
Console.WriteLine( "\tCapacity: {0}", myAL.Capacity );
Console.Write( "\tValues:" );
PrintValues( myAL );
}
public static void PrintValues( IEnumerable myList )
{
// Для эффективной работы с объектом ArrayList
// создается перечислитель...
// Перечислитель обеспечивает перебор элементов.
System.Collections.IEnumerator myEnumerator
= myList.GetEnumerator(); // Перечислитель для myList
while (myEnumerator.MoveNext())
Console.Write( "\t{0}", myEnumerator.Current );
}
}
Результат:
myAL
Count: 3
Capacity: 16
Values: Россия , вперед !
Неполный перечень свойств и методов приводится ниже.
BitArray |
Перегружен. Инициализирует новый экземпляр класса BitArray, для которого могут быть указаны емкость и начальные значения |
Count |
Возвращает число элементов, которое хранится в классе BitArray |
IsReadOnly |
Возвращает значение, определяющее, доступен ли класс BitArray только для чтения |
IsSynchronized |
Возвращает значение, определяющее, является ли доступ к классу BitArray синхронизированным (потокобезопасным) |
Item |
Возвращает или задает значение бита по указанному адресу в классе BitArrayВ языке C# это свойство является индексатором класса |
Length |
Возвращает или задает число элементов в классе BitArray |
SyncRoot |
Возвращает объект, который может быть использован для синхронизации доступа к классу BitArray |
And |
Выполняет поразрядную операцию логического умножения элементов текущего класса BitArray с соответствующими элементами указанного класса BitArray |
Clone |
Создает неполную копию класса BitArray |
CopyTo |
Копирует целый класс BitArray в совместимый одномерный массив класса Array, начиная с указанного индекса конечного массива |
Get |
Возвращает значение бита по указанному адресу в классе BitArray |
GetEnumerator |
Возвращает перечислитель, который может осуществлять просмотр всех элементов класса BitArray |
Not |
Преобразовывает все двоичные значения в текущем классе BitArray таким образом, чтобы каждому элементу со значением true было присвоено значение false, а каждому элементу со значением false было присвоено значение true |
Or |
Выполняет поразрядную операцию логического сложения элементов текущего класса BitArray с соответствующими элементами указанного класса BitArray |
Set |
Задает указанное значение биту по указанному адресу в классе BitArray |
SetAll |
Задает определенное значение всем битам в классе BitArray |
Xor |
Выполняет поразрядную операцию "исключающее ИЛИ" для элементов текущего класса BitArray и соответствующих элементов указанного класса BitArray |
Пример использования:
using System;
using System.Collections;
public class SamplesBitArray {
public static void Main() {
// Creates and initializes several BitArrays.
BitArray myBA1 = new BitArray( 5 );
BitArray myBA2 = new BitArray( 5, false );
byte[] myBytes = new byte[5] { 1, 2, 3, 4, 5 };
BitArray myBA3 = new BitArray( myBytes );
bool[] myBools = new bool[5] { true, false, true, true, false };
BitArray myBA4 = new BitArray( myBools );
int[] myInts = new int[5] { 6, 7, 8, 9, 10 };
BitArray myBA5 = new BitArray( myInts );
// Displays the properties and values of the BitArrays.
Console.WriteLine( "myBA1" );
Console.WriteLine( "\tCount: {0}", myBA1.Count );
Console.WriteLine( "\tLength: {0}", myBA1.Length );
Console.WriteLine( "\tValues:" );
PrintValues( myBA1, 8 );
Console.WriteLine( "myBA2" );
Console.WriteLine( "\tCount: {0}", myBA2.Count );
Console.WriteLine( "\tLength: {0}", myBA2.Length );
Console.WriteLine( "\tValues:" );
PrintValues( myBA2, 8 );
Console.WriteLine( "myBA3" );
Console.WriteLine( "\tCount: {0}", myBA3.Count );
Console.WriteLine( "\tLength: {0}", myBA3.Length );
Console.WriteLine( "\tValues:" );
PrintValues( myBA3, 8 );
Console.WriteLine( "myBA4" );
Console.WriteLine( "\tCount: {0}", myBA4.Count );
Console.WriteLine( "\tLength: {0}", myBA4.Length );
Console.WriteLine( "\tValues:" );
PrintValues( myBA4, 8 );
Console.WriteLine( "myBA5" );
Console.WriteLine( "\tCount: {0}", myBA5.Count );
Console.WriteLine( "\tLength: {0}", myBA5.Length );
Console.WriteLine( "\tValues:" );
PrintValues( myBA5, 8 );
}
public static void PrintValues( IEnumerable myList, int myWidth )
{
System.Collections.IEnumerator myEnumerator = myList.GetEnumerator();
int i = myWidth;
while ( myEnumerator.MoveNext() )
{
if ( i <= 0 )
{
i = myWidth;
Console.WriteLine();
}
i--;
Console.Write( "\t{0}", myEnumerator.Current );
}
Console.WriteLine();
}
}
Результат:
myBA1
Count: 5
Length: 5
Values:
False False False False False
myBA2
Count: 5
Length: 5
Values:
False False False False False
myBA3
Count: 40
Length: 40
Values:
True False False False False False False False
False True False False False False False False
True True False False False False False False
False False True False False False False False
True False True False False False False False
myBA4
Count: 5
Length: 5
Values:
True False True True False
myBA5
Count: 160
Length: 160
Values:
False True True False False False False False
False False False False False False False False
False False False False False False False False
False False False False False False False False
True True True False False False False False
False False False False False False False False
False False False False False False False False
False False False False False False False False
False False False True False False False False
False False False False False False False False
False False False False False False False False
False False False False False False False False
True False False True False False False False
False False False False False False False False
False False False False False False False False
False False False False False False False False
False True False True False False False False
False False False False False False False False
False False False False False False False False
False False False False False False False False
Неполный перечень свойств и методов.
Queue |
Перегружен. Инициализирует новый экземпляр класса Queue |
Count |
Возвращает число элементов, которое хранится в классе Queue |
SyncRoot |
Получает объект, который может быть использован для синхронизации доступа к классу Queue |
Clear |
Удаляет все объекты из класса Queue |
Clone |
Создает поверхностную копию класса Queue |
Contains |
Определяет, принадлежит ли элемент классу Queue |
CopyTo |
Копирует элементы класса Queue в существующий одномерный массив класса Array по указанному адресу |
|
Удаляет и возвращает объект в начале класса Queue |
|
Добавляет объект в конец класса Queue |
GetEnumerator |
Возвращает перечислитель, который может перемещаться по классу Queue |
|
Возвращает объект в начале класса Queue, но не удаляет его |
ToArray |
Копирует элементы класса Queue в новый массив |
TrimToSize |
Задает значение емкости, равное действительному количеству элементов в классе Queue |
Пример:
using System;
using System.Collections;
public class SamplesQueue
{
public static void Main()
{
// Creates and initializes a new Queue.
Queue myQ = new Queue();
myQ.Enqueue("Россия,");
myQ.Enqueue("вперед");
myQ.Enqueue("!");
// Displays the properties and values of the Queue.
Console.WriteLine( "myQ" );
Console.WriteLine( "\tCount: {0}", myQ.Count );
Console.Write( "\tValues:" );
PrintValues( myQ );
}
public static void PrintValues( IEnumerable myCollection )
{
System.Collections.IEnumerator myEnumerator
= myCollection.GetEnumerator();
while ( myEnumerator.MoveNext() )
Console.Write( "\t{0}", myEnumerator.Current );
}
}
Результат:
myQ
Count: 3
Values: Россия , вперед !
Stack |
Перегружен. Инициализирует новый экземпляр класса Stack |
Count |
Возвращает число элементов, которое хранится в классе Stack |
IsSynchronized |
Возвращает значение, определяющее, является ли доступ к классу Stack синхронизированным (потокобезопасным) |
SyncRoot |
Возвращает объект, который может быть использован для синхронизации доступа к классу Stack |
Clear |
Удаляет все объекты из класса Stack |
Clone |
Создает неполную копию класса Stack |
Contains |
Определяет, принадлежит ли элемент классу Stack |
CopyTo |
Копирует элементы класса Stack в существующий одномерный массив класса Array, начиная с указанного индекса массива |
GetEnumerator |
Интерфейс IEnumerator для класса Stack |
|
Возвращает самый верхний объект класса Stack, но не удаляет его |
Pop |
Удаляет и возвращает верхний объект класса Stack |
Push |
Вставляет объект в начало класса Stack |
Synchronized |
Возвращает синхронизированную (потокобезопасную) обертку класса Stack |
ToArray |
Копирует элементы класса Stack в новый массив |
Класс Stack допускает в качестве действительного значение "пустая ссылка", а также допускает наличие повторяющихся элементов.
Ниже приведен пример создания и инициализации класса Stack и способ вывода его значений:
using System;
using System.Collections;
public class SamplesStack {
public static void Main()
{
// Creates and initializes a new Stack.
Stack myStack = new Stack();
myStack.Push("Hello");
myStack.Push("world");
myStack.Push("!");
// Displays the properties and values of the Stack.
Console.WriteLine( "myStack" );
Console.WriteLine( "\tCount: {0}", myStack.Count );
Console.Write( "\tValues:" );
PrintValues( myStack );
}
public static void PrintValues( IEnumerable myCollection )
{
System.Collections.IEnumerator myEnumerator = myCollection.GetEnumerator();
while ( myEnumerator.MoveNext() )
Console.Write( "\t{0}", myEnumerator.Current );
Console.WriteLine();
}
}
Результат:
myStack
Count: 3
Values: ! world Hello
Наследует интерфейс IEnumerator, который является основным для всех перечислителей. Поддерживает простое перемещение по коллекции.
Current |
Возвращает текущий элемент коллекции |
MoveNext |
Перемещает перечислитель на следующий элемент коллекции |
Reset |
Устанавливает перечислитель в исходное положение перед первым элементом коллекции |
Перечислитель позволяет считывать (только считывать!) информацию (данные) из коллекции. Перечислители не используются для изменения содержания коллекции. Для этого применяются специфические методы данной коллекции ( ).
Вновь созданный перечислитель размещается перед первым элементом коллекции. Метод Reset возвращает перечислитель обратно в положение перед первым элементом коллекции.
В этом положении обращение к свойству Current приводит к возникновению исключения. Поэтому необходимо вызвать метод MoveNext, чтобы переместить перечислитель на первый элемент коллекции до считывания значения свойства Current.
Свойство Current не меняет своего значения (возвращает ссылку на один и тот же член коллекции), пока не будет вызван метод MoveNext или Reset.
Метод MoveNext обеспечивает изменение значения свойства Current.
Завершение перемещения по коллекции приводит к установке перечислителя после последнего элемента коллекции. При этом вызов метода MoveNext возвращает значение false. Если последний вызов метода MoveNext вернул значение false, обращение к свойству Current приводит к возникновению исключения. Последовательный вызов методов Reset и MoveNext приводит к перемещению перечислителя на первый элемент коллекции.
Перечислитель действителен до тех пор, пока в коллекцию не вносятся изменения. Если в коллекцию вносятся изменения (добавляются или удаляются элементы коллекции), перечислитель становится недействительным, а следующий вызов методов MoveNext или Reset приводит к возникновению исключения InvalidOperationException.
После изменения коллекции в промежутке между вызовом метода MoveNext и новым обращением к свойству Current, свойство Current возвращает текущий элемент коллекции, даже если перечислитель уже недействителен.
Перечислитель не имеет монопольного доступа к коллекции, поэтому перечисление в коллекции не является потокобезопасной операцией. Даже при синхронизации коллекции другие потоки могут изменить ее, что приводит к созданию исключения при перечислении. Чтобы обеспечить потокобезопасность при перечислении, можно либо заблокировать коллекцию на все время перечисления, либо перехватывать исключения, которые возникают в результате изменений, внесенных другими потоками.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.