BitArray Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengelola array ringkas nilai bit, yang direpresentasikan sebagai Boolean, di mana true
menunjukkan bahwa bit aktif (1) dan false
menunjukkan bit tidak aktif (0).
public ref class BitArray sealed : System::Collections::ICollection
public ref class BitArray sealed : ICloneable, System::Collections::ICollection
public sealed class BitArray : System.Collections.ICollection
public sealed class BitArray : ICloneable, System.Collections.ICollection
[System.Serializable]
public sealed class BitArray : ICloneable, System.Collections.ICollection
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class BitArray : ICloneable, System.Collections.ICollection
type BitArray = class
interface ICollection
interface IEnumerable
type BitArray = class
interface ICollection
interface IEnumerable
interface ICloneable
[<System.Serializable>]
type BitArray = class
interface ICollection
interface IEnumerable
interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type BitArray = class
interface ICollection
interface IEnumerable
interface ICloneable
Public NotInheritable Class BitArray
Implements ICollection
Public NotInheritable Class BitArray
Implements ICloneable, ICollection
- Warisan
-
BitArray
- Atribut
- Penerapan
Contoh
Contoh kode berikut menunjukkan cara membuat dan menginisialisasi BitArray dan cara mencetak nilainya.
using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myList, int myWidth );
int main()
{
// Creates and initializes several BitArrays.
BitArray^ myBA1 = gcnew BitArray( 5 );
BitArray^ myBA2 = gcnew BitArray( 5,false );
array<Byte>^myBytes = {1,2,3,4,5};
BitArray^ myBA3 = gcnew BitArray( myBytes );
array<Boolean>^myBools = {true,false,true,true,false};
BitArray^ myBA4 = gcnew BitArray( myBools );
array<Int32>^myInts = {6,7,8,9,10};
BitArray^ myBA5 = gcnew BitArray( myInts );
// Displays the properties and values of the BitArrays.
Console::WriteLine( "myBA1" );
Console::WriteLine( " Count: {0}", myBA1->Count );
Console::WriteLine( " Length: {0}", myBA1->Length );
Console::WriteLine( " Values:" );
PrintValues( myBA1, 8 );
Console::WriteLine( "myBA2" );
Console::WriteLine( " Count: {0}", myBA2->Count );
Console::WriteLine( " Length: {0}", myBA2->Length );
Console::WriteLine( " Values:" );
PrintValues( myBA2, 8 );
Console::WriteLine( "myBA3" );
Console::WriteLine( " Count: {0}", myBA3->Count );
Console::WriteLine( " Length: {0}", myBA3->Length );
Console::WriteLine( " Values:" );
PrintValues( myBA3, 8 );
Console::WriteLine( "myBA4" );
Console::WriteLine( " Count: {0}", myBA4->Count );
Console::WriteLine( " Length: {0}", myBA4->Length );
Console::WriteLine( " Values:" );
PrintValues( myBA4, 8 );
Console::WriteLine( "myBA5" );
Console::WriteLine( " Count: {0}", myBA5->Count );
Console::WriteLine( " Length: {0}", myBA5->Length );
Console::WriteLine( " Values:" );
PrintValues( myBA5, 8 );
}
void PrintValues( IEnumerable^ myList, int myWidth )
{
int i = myWidth;
IEnumerator^ myEnum = myList->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ obj = safe_cast<Object^>(myEnum->Current);
if ( i <= 0 )
{
i = myWidth;
Console::WriteLine();
}
i--;
Console::Write( "{0,8}", obj );
}
Console::WriteLine();
}
/*
This code produces the following output.
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
*/
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( " Count: {0}", myBA1.Count );
Console.WriteLine( " Length: {0}", myBA1.Length );
Console.WriteLine( " Values:" );
PrintValues( myBA1, 8 );
Console.WriteLine( "myBA2" );
Console.WriteLine( " Count: {0}", myBA2.Count );
Console.WriteLine( " Length: {0}", myBA2.Length );
Console.WriteLine( " Values:" );
PrintValues( myBA2, 8 );
Console.WriteLine( "myBA3" );
Console.WriteLine( " Count: {0}", myBA3.Count );
Console.WriteLine( " Length: {0}", myBA3.Length );
Console.WriteLine( " Values:" );
PrintValues( myBA3, 8 );
Console.WriteLine( "myBA4" );
Console.WriteLine( " Count: {0}", myBA4.Count );
Console.WriteLine( " Length: {0}", myBA4.Length );
Console.WriteLine( " Values:" );
PrintValues( myBA4, 8 );
Console.WriteLine( "myBA5" );
Console.WriteLine( " Count: {0}", myBA5.Count );
Console.WriteLine( " Length: {0}", myBA5.Length );
Console.WriteLine( " Values:" );
PrintValues( myBA5, 8 );
}
public static void PrintValues( IEnumerable myList, int myWidth ) {
int i = myWidth;
foreach ( Object obj in myList ) {
if ( i <= 0 ) {
i = myWidth;
Console.WriteLine();
}
i--;
Console.Write( "{0,8}", obj );
}
Console.WriteLine();
}
}
/*
This code produces the following output.
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
*/
Imports System.Collections
Public Class SamplesBitArray
Public Shared Sub Main()
' Creates and initializes several BitArrays.
Dim myBA1 As New BitArray(5)
Dim myBA2 As New BitArray(5, False)
Dim myBytes() As Byte = {1, 2, 3, 4, 5}
Dim myBA3 As New BitArray(myBytes)
Dim myBools() As Boolean = {True, False, True, True, False}
Dim myBA4 As New BitArray(myBools)
Dim myInts() As Integer = {6, 7, 8, 9, 10}
Dim myBA5 As New BitArray(myInts)
' Displays the properties and values of the BitArrays.
Console.WriteLine("myBA1")
Console.WriteLine(" Count: {0}", myBA1.Count)
Console.WriteLine(" Length: {0}", myBA1.Length)
Console.WriteLine(" Values:")
PrintValues(myBA1, 8)
Console.WriteLine("myBA2")
Console.WriteLine(" Count: {0}", myBA2.Count)
Console.WriteLine(" Length: {0}", myBA2.Length)
Console.WriteLine(" Values:")
PrintValues(myBA2, 8)
Console.WriteLine("myBA3")
Console.WriteLine(" Count: {0}", myBA3.Count)
Console.WriteLine(" Length: {0}", myBA3.Length)
Console.WriteLine(" Values:")
PrintValues(myBA3, 8)
Console.WriteLine("myBA4")
Console.WriteLine(" Count: {0}", myBA4.Count)
Console.WriteLine(" Length: {0}", myBA4.Length)
Console.WriteLine(" Values:")
PrintValues(myBA4, 8)
Console.WriteLine("myBA5")
Console.WriteLine(" Count: {0}", myBA5.Count)
Console.WriteLine(" Length: {0}", myBA5.Length)
Console.WriteLine(" Values:")
PrintValues(myBA5, 8)
End Sub
Public Shared Sub PrintValues(myList As IEnumerable, myWidth As Integer)
Dim i As Integer = myWidth
Dim obj As [Object]
For Each obj In myList
If i <= 0 Then
i = myWidth
Console.WriteLine()
End If
i -= 1
Console.Write("{0,8}", obj)
Next obj
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' 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
Keterangan
Kelas BitArray adalah kelas koleksi di mana kapasitas selalu sama dengan hitungan. Elemen ditambahkan ke dengan BitArray meningkatkan Length properti; elemen dihapus dengan mengurangi Length properti . Ukuran dikendalikan BitArray oleh klien; pengindeksan melewati akhir BitArray lemparan ArgumentException. Kelas ini BitArray menyediakan metode yang tidak ditemukan di koleksi lain, termasuk yang memungkinkan beberapa elemen dimodifikasi sekaligus menggunakan filter, seperti And, , OrXor , Not, dan SetAll.
Kelas BitVector32 adalah struktur yang menyediakan fungsionalitas yang sama dengan BitArray, tetapi dengan performa yang lebih cepat. BitVector32 lebih cepat karena merupakan jenis nilai dan oleh karena itu dialokasikan pada tumpukan, sedangkan BitArray merupakan jenis referensi dan, oleh karena itu, dialokasikan pada tumpukan.
System.Collections.Specialized.BitVector32 dapat menyimpan tepat 32 bit, sedangkan BitArray dapat menyimpan jumlah variabel bit. BitVector32 menyimpan bendera bit dan bilangan bulat kecil, sehingga membuatnya ideal untuk data yang tidak diekspos ke pengguna. Namun, jika jumlah bendera bit yang diperlukan tidak diketahui, adalah variabel, atau lebih besar dari 32, gunakan BitArray sebagai gantinya.
BitArray berada di System.Collections namespace layanan; BitVector32 berada di System.Collections.Specialized namespace layanan.
Elemen dalam koleksi ini dapat diakses menggunakan indeks bilangan bulat. Indeks dalam koleksi ini berbasis nol.
Konstruktor
BitArray(BitArray) |
Menginisialisasi instans BitArray baru kelas yang berisi nilai bit yang disalin dari yang ditentukan BitArray. |
BitArray(Boolean[]) |
Menginisialisasi instans BitArray baru kelas yang berisi nilai bit yang disalin dari array Boolean yang ditentukan. |
BitArray(Byte[]) |
Menginisialisasi instans BitArray baru kelas yang berisi nilai bit yang disalin dari array byte yang ditentukan. |
BitArray(Int32) |
Menginisialisasi instans BitArray baru kelas yang dapat menyimpan jumlah nilai bit yang ditentukan, yang awalnya diatur ke |
BitArray(Int32, Boolean) |
Menginisialisasi instans BitArray baru kelas yang dapat menyimpan jumlah nilai bit yang ditentukan, yang awalnya diatur ke nilai yang ditentukan. |
BitArray(Int32[]) |
Menginisialisasi instans BitArray baru kelas yang berisi nilai bit yang disalin dari array bilangan bulat 32-bit yang ditentukan. |
Properti
Count |
Mendapatkan jumlah elemen yang terkandung dalam BitArray. |
IsReadOnly |
Mendapatkan nilai yang menunjukkan apakah BitArray bersifat baca-saja. |
IsSynchronized |
Mendapatkan nilai yang menunjukkan apakah akses ke disinkronkan BitArray (utas aman). |
Item[Int32] |
Mendapatkan atau menetapkan nilai bit pada posisi tertentu di BitArray. |
Length |
Mendapatkan atau mengatur jumlah elemen dalam BitArray. |
SyncRoot |
Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke BitArray. |
Metode
And(BitArray) |
Melakukan operasi BITWISE AND antara elemen objek saat ini BitArray dan elemen yang sesuai dalam array yang ditentukan. Objek saat ini BitArray akan dimodifikasi untuk menyimpan hasil operasi AND bitwise. |
Clone() |
Membuat salinan dangkal dari BitArray. |
CopyTo(Array, Int32) |
Menyalin seluruh BitArray ke satu dimensi Arrayyang kompatibel, dimulai dari indeks array target yang ditentukan. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
Get(Int32) |
Mendapatkan nilai bit pada posisi tertentu di BitArray. |
GetEnumerator() |
Mengembalikan enumerator yang melakukan iterasi melalui BitArray. |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
HasAllSet() |
Menentukan apakah semua bit dalam BitArray diatur ke |
HasAnySet() |
Menentukan apakah ada bit dalam BitArray yang diatur ke |
LeftShift(Int32) |
Menggeser semua nilai bit saat ini BitArray ke kiri pada |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
Not() |
Menginversi semua nilai bit dalam saat ini BitArray, sehingga elemen yang diatur ke |
Or(BitArray) |
Melakukan operasi bitwise OR antara elemen objek saat ini BitArray dan elemen yang sesuai dalam array yang ditentukan. Objek saat ini BitArray akan dimodifikasi untuk menyimpan hasil operasi OR bitwise. |
RightShift(Int32) |
Menggeser semua nilai bit saat ini BitArray ke kanan pada |
Set(Int32, Boolean) |
Mengatur bit pada posisi tertentu dalam ke BitArray nilai yang ditentukan. |
SetAll(Boolean) |
Mengatur semua bit dalam ke BitArray nilai yang ditentukan. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Xor(BitArray) |
Melakukan operasi OR eksklusif bitwise antara elemen objek saat ini BitArray terhadap elemen yang sesuai dalam array yang ditentukan. Objek saat ini BitArray akan dimodifikasi untuk menyimpan hasil operasi OR eksklusif bitwise. |
Implementasi Antarmuka Eksplisit
ICollection.CopyTo(Array, Int32) |
Menyalin elemen BitArray ke Array, dimulai dari indeks yang ditentukan Array . |
ICollection.Count |
Mendapatkan jumlah elemen di BitArray. |
ICollection.IsSynchronized |
Mendapatkan nilai yang menunjukkan apakah akses ke disinkronkan BitArray (utas aman). |
ICollection.SyncRoot |
Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke BitArray. |
Metode Ekstensi
Cast<TResult>(IEnumerable) |
Mentransmisikan elemen dari IEnumerable ke jenis yang ditentukan. |
OfType<TResult>(IEnumerable) |
Memfilter elemen berdasarkan IEnumerable jenis tertentu. |
AsParallel(IEnumerable) |
Mengaktifkan paralelisasi kueri. |
AsQueryable(IEnumerable) |
Mengonversi menjadi IEnumerableIQueryable. |
Berlaku untuk
Keamanan Thread
Anggota statis publik (Shared
dalam Visual Basic) dari jenis ini aman untuk utas. Setiap anggota instans tidak dijamin aman untuk utas.
Implementasi ini tidak menyediakan pembungkus yang disinkronkan (aman utas) untuk BitArray.
Menghitung melalui koleksi secara intrinsik bukan prosedur aman utas. Bahkan ketika koleksi disinkronkan, utas lain masih dapat memodifikasi koleksi, yang menyebabkan enumerator melemparkan pengecualian. Untuk menjamin keamanan utas selama enumerasi, Anda dapat mengunci koleksi selama seluruh enumerasi atau menangkap pengecualian yang dihasilkan dari perubahan yang dibuat oleh utas lain.