Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C# 4.0 ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство - 2011Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 238

Автор Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚ Π¨ΠΈΠ»Π΄Ρ‚

public BitArray(int[ ] values)

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС элСмСнт values [0 ] ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 32 Π±ΠΈΡ‚Π°, элСмСнт values [ 1 ] β€” Π²Ρ‚ΠΎΡ€Ρ‹Π΅ 32 Π±ΠΈΡ‚Π° ΠΈ Ρ‚.Π΄.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ конструктора ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° BitArray, ΡƒΠΊΠ°Π·Π°Π² Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€:

public BitArray(int length)

Π³Π΄Π΅ length ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ количСство Π±ΠΈΡ‚ΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ логичСским Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ false. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ конструкторС ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π΅Π΅ Π±ΠΈΡ‚ΠΎΠ².

public BitArray(int length, bool defaultValue)

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС всС Π±ΠΈΡ‚Ρ‹ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ defaultValue, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌ конструктору Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° BitArray ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ· ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ конструктор.

public BitArray(BitArray bits)

Π’Π½ΠΎΠ²ΡŒ сконструированный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ количСство Π±ΠΈΡ‚ΠΎΠ², ΠΊΠ°ΠΊ ΠΈ Π² ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ bits, Π° Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ это Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π²Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° BitArray ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. По ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ индСксу указываСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±ΠΈΡ‚ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ индСкс ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ младший Π±ΠΈΡ‚.

Π’ классС BitArray опрСдСляСтся ряд собствСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² интСрфСйсах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ этого класса ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 25.9. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² классС BitArray Π½Π΅ поддСрТиваСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Synchronized (). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса синхронизированная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° нСдоступна, Π° свойство IsSynchronized всСгда ΠΈΠΌΠ΅Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ для управлСния доступом ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° BitArray Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, прСдоставляСмого ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π²ΡˆΠΈΠΌΡΡ Ρ€Π°Π½Π΅Π΅ свойством SyncRoot.

Π’Π°Π±Π»ΠΈΡ†Π° 25.9. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² классС BitArray

ΠœΠ΅Ρ‚ΠΎΠ΄

ОписаниС

public

value)

BitArray And(BitArray

ВыполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ логичСского умноТСния И Π±ΠΈΡ‚ΠΎΠ² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ value. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° BitArray, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

public

bool Get(int index)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΡ‚Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎ индСксу index

public

BitArray Not()

ВыполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ поразрядного логичСского отрицания НЕ Π±ΠΈΡ‚ΠΎΠ² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° BitArray, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

ΠœΠ΅Ρ‚ΠΎΠ΄

ОписаниС

public BitArray Or(BitArray value)

public void Set (int index, bool value)

public void SetAll(bool value)

public BitArray Xor(BitArray value)

ВыполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ логичСского слоТСния Π˜Π›Π˜ Π±ΠΈΡ‚ΠΎΠ² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ value. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° BitArray, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

УстанавливаСт Π±ΠΈΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎ индСксу index, Ρ€Π°Π²Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ value

УстанавливаСт всС Π±ΠΈΡ‚Ρ‹ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ value

ВыполняСт Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜ Π½Π°Π΄ Π±ΠΈΡ‚Π°ΠΌΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ value. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° BitArray, со-

Π’ классС BitArray опрСдСляСтся Ρ‚Π°ΠΊΠΆΠ΅ собствСнноС свойство, ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² интСрфСйсах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ.

public int Length { get; set; }

Бвойство Length позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ количСство Π±ΠΈΡ‚ΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈ стандартноС свойство Count, опрСдСляСмоС для всСх ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ свойства Count, свойство Length доступно Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, Π½ΠΎ ΠΈ для записи, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° BitArray. Π’Π°ΠΊ, ΠΏΡ€ΠΈ сокращСнии ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° BitArray лишниС Π±ΠΈΡ‚Ρ‹ ΡƒΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ, начиная со ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ разряда. А ΠΏΡ€ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° BitArray Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, вводятся Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, начиная с Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ разряда.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² классС BitArray опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ индСксатор.

public bool this[int index] { get; set; }

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого индСксатора ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ дСмонстрируСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ класса BitArray.

// ΠŸΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ класса BitArray.

using System;

using System.Collections;

class BADemo {

public static void ShowBits(string rem,

BitArray bits) {

Console.WriteLine(rem);

for(int i=0; i < bits.Count; i++)

Console.Write("{0, -6} ", bits[i]);

Console.WriteLine ("\n");

}

static void Main() {

BitArray ba = new BitArray(8); byte[] b = { 67 };

BitArray ba2 = new BitArray(b);

ShowBits("Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ содСрТимоС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π¬Π°:", Π¬Π°) ; ba = Π¬Π°.Not ();

ShowBits("Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π¬Π° послС логичСской ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ NOT:", Π¬Π°);

ShowBits("Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π¬Π°2:", Π¬Π°2);

BitArray Π¬Π°Π— = Π¬Π°.Π₯ΠΎΠ³(Π¬Π°2);

ShowBits("Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ логичСской ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ba XOR Π¬Π°2:", Π¬Π°Π—);

}

}

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ содСрТимоС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π¬Π°:

False False False False False False False False Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ba послС логичСской ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ NOT:

True True True True True True True True Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ba2:

True True False False False False ?True False Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ логичСской ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ba XOR ba2:

False False True True True True False True

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

Π’ срСдС .NET Framework прСдусмотрСн ряд ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΠ»ΠΈ для ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ особым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠšΠ»Π°ΡΡΡ‹ этих Π½Π΅ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² пространствС ΠΈΠΌΠ΅Π½ System. Collections . Specialized ΠΈ пСрСчислСны Π½ΠΈΠΆΠ΅.

Класс ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

ОписаниС

CollectionsUtil

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Ρ„Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для создания ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

HybridDictionary

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… для хранСния нСбольшого количСства ΠΏΠ°Ρ€ β€œΠΊΠ»ΡŽΡ‡-значСниС” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ класс ListDictionary. ΠŸΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° автоматичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ класс Hashtable для хранСния Π΅Π΅ элСмСнтов

ListDictionary

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… для хранСния ΠΏΠ°Ρ€ β€œΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅" ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ связный список. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для хранСния нСбольшого количСства элСмСнтов

NameValueCollection

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для отсортированных ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся ΠΏΠ°Ρ€Ρ‹ β€œΠΊΠ»ΡŽΡ‡-значСниС”, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΈ ΠΊΠ»ΡŽΡ‡, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ относятся ΠΊ Ρ‚ΠΈΠΏΡƒ string

OrderedDictionary

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся индСксируСмыС ΠΏΠ°Ρ€Ρ‹ β€œΠΊΠ»ΡŽΡ‡-значСниС”

StringCollection

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… для хранСния ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк

StringDictionary

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся ΠΏΠ°Ρ€Ρ‹ β€œΠΊΠ»ΡŽΡ‡-значСниС”, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΈ ΠΊΠ»ΡŽΡ‡, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ относятся ΠΊ Ρ‚ΠΈΠΏΡƒ

string

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² пространствС ΠΈΠΌΠ΅Π½ System. Collections ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚Ρ€ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… абстрактных класса: CollectionBase, ReadOnlyCollectionBase ΠΈ DictionaryBase. Π­Ρ‚ΠΈ классы ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π² качСствС ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ собствСнных ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ.

ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

Благодаря Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ интСрфСйс Collections API Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΡΡ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ количСство классов ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈ интСрфСйсов ΡƒΠ΄Π²ΠΎΠΈΠ»ΠΎΡΡŒ. ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² пространствС ΠΈΠΌΠ΅Π½ System. Collections . Generic. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, классы ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΌΠΈ эквивалСнтами Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π²ΡˆΠΈΡ…ΡΡ Ρ€Π°Π½Π΅Π΅ классов Π½Π΅ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, хотя это соотвСтствиС Π½Π΅ являСтся Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ΠΌ. НапримСр, Π² классС ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ LinkedList рСализуСтся Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ список, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² Π½Π΅ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠΌ эквивалСнтС Π΅Π³ΠΎ Π½Π΅ сущСствуСт. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π² классах ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, хотя ΠΈ ΠΏΠΎΠ΄ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. Π’Π°ΠΊ, ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ класса ArrayList называСтся List, Π° ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ класса HashTable β€” Dictionary. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ содСрТимоС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… интСрфСйсов ΠΈ классов рСорганизуСтся с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ измСнСниями для пСрСноса Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ интСрфСйса Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Но Π² Ρ†Π΅Π»ΠΎΠΌ, имСя ясноС прСдставлСниС ΠΎ Π½Π΅ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… коллСкциях, ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· особого Ρ‚Ρ€ΡƒΠ΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.