Российский Государственный Технологический Университет им. К.Э. Циолковского
Опубликован: 02.03.2007 | Доступ: свободный | Студентов: 5636 / 790 | Оценка: 3.96 / 3.45 | Длительность: 27:04:00
ISBN: 978-5-9556-0086-4
Лекция 12:

Коллекции. Параметризованные классы

< Лекция 11 || Лекция 12: 1234 || Лекция 13 >

BitArray

Неполный перечень свойств и методов приводится ниже.

Конструкторы
BitArray Перегружен. Инициализирует новый экземпляр класса BitArray, для которого могут быть указаны емкость и начальные значения
Открытые свойства
Count Возвращает число элементов, которое хранится в классе BitArray
IsReadOnly Возвращает значение, определяющее, доступен ли класс BitArray только для чтения
IsSynchronized Возвращает значение, определяющее, является ли доступ к классу BitArray синхронизированным (потокобезопасным)
Item Возвращает или задает значение бита по указанному адресу в классе BitArray

В языке C# это свойство является индексатором класса BitArray

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();
    }
 }
Листинг 12.2.

Результат:

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
Листинг 12.3.

Queue

Неполный перечень свойств и методов.

Конструктор
Queue Перегружен. Инициализирует новый экземпляр класса Queue
Открытые свойства
Count Возвращает число элементов, которое хранится в классе Queue
SyncRoot Получает объект, который может быть использован для синхронизации доступа к классу Queue
Открытые методы
Clear Удаляет все объекты из класса Queue
Clone Создает поверхностную копию класса Queue
Contains Определяет, принадлежит ли элемент классу Queue
CopyTo Копирует элементы класса Queue в существующий одномерный массив класса Array по указанному адресу
Dequeue Удаляет и возвращает объект в начале класса Queue
Enqueue Добавляет объект в конец класса Queue
GetEnumerator Возвращает перечислитель, который может перемещаться по классу Queue
Peek Возвращает объект в начале класса 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 );
    }
 }
Листинг 12.4.

Результат:

myQ
     Count:    3
     Values:    Россия ,   вперед    !
< Лекция 11 || Лекция 12: 1234 || Лекция 13 >
kewezok kewezok
kewezok kewezok
Елена Шляхт
Елена Шляхт
Объясните плиз в чем отличие а++ от ++а
Почему результат разный?
int a=0, b=0;
Console.WriteLine(a++); //0
Console.WriteLine(++b); //1
a++;
++b;
Console.WriteLine(a); //2
Console.WriteLine(b); //2