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 nilai bit yang ringkas, yang diwakili sebagai Boolean, di mana true menunjukkan bahwa bit aktif (1) dan false menunjukkan bit mati (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 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 dikontrol BitArray oleh klien; pengindeksan melewati akhir BitArray melempar 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 terekspos 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; 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
| Nama | Deskripsi |
|---|---|
| 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, 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 dapat menyimpan jumlah nilai bit yang ditentukan, yang awalnya diatur ke |
| BitArray(Int32[]) |
Menginisialisasi instans BitArray baru kelas yang berisi nilai bit yang disalin dari array bilangan bulat 32-bit yang ditentukan. |
Properti
| Nama | Deskripsi |
|---|---|
| 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 BitArray disinkronkan (utas aman). |
| Item[Int32] |
Mendapatkan atau mengatur 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
| Nama | Deskripsi |
|---|---|
| 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 BITWISE AND. |
| Clone() |
Membuat salinan dangkal dari BitArray. |
| CopyTo(Array, Int32) |
Menyalin seluruh BitArray ke satu dimensi Arrayyang kompatibel , dimulai pada 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 berulang melalui BitArray. |
| GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
| GetType() |
Mendapatkan Type instans 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 arus BitArray ke kiri pada |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (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 BITWISE OR. |
| PopCount() |
Mengelola array nilai bit yang ringkas, yang diwakili sebagai Boolean, di mana |
| RightShift(Int32) |
Menggeser semua nilai bit arus 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
| Nama | Deskripsi |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Menyalin elemen BitArray ke Array, dimulai dari indeks yang ditentukan Array . |
| ICollection.Count |
Mendapatkan jumlah elemen dalam BitArray. |
| ICollection.IsSynchronized |
Mendapatkan nilai yang menunjukkan apakah akses ke BitArray disinkronkan (utas aman). |
| ICollection.SyncRoot |
Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke BitArray. |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| AsParallel(IEnumerable) |
Mengaktifkan paralelisasi kueri. |
| AsQueryable(IEnumerable) |
Mengonversi IEnumerable menjadi IQueryable. |
| Cast<TResult>(IEnumerable) |
Melemparkan elemen IEnumerable ke jenis yang ditentukan. |
| OfType<TResult>(IEnumerable) |
Memfilter elemen IEnumerable berdasarkan jenis tertentu. |
Berlaku untuk
Keamanan Thread
Anggota statis publik (Shared dalam Visual Basic) dari jenis ini aman utas. Setiap anggota instans tidak dijamin aman terhadap 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.