BitArray Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bitin (1) açık olduğunu ve false bitin kapalı (0) olduğunu belirten Boolean true olarak temsil edilen küçük bir bit değerleri dizisini yönetir.
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
- Devralma
-
BitArray
- Öznitelikler
- Uygulamalar
Örnekler
Aşağıdaki kod örneği, oluşturma BitArray ve başlatma ve değerlerinin nasıl yazdırılacağını gösterir.
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
Açıklamalar
BitArray sınıfı, kapasitenin her zaman sayı ile aynı olduğu bir koleksiyon sınıfıdır. Öğeler özelliği artırılarak Length öğesine BitArray eklenir; öğeler özelliği azaltarak Length silinir. boyutu BitArray istemci tarafından denetleniyor; sonunun BitArray dizinlenmesi bir ArgumentExceptionoluşturur. BitArray sınıfı, , Notve SetAllgibi AndOrXor bir filtre kullanılarak aynı anda birden çok öğe değiştirilmesine izin verenler de dahil olmak üzere diğer koleksiyonlarda bulunmayan yöntemler sağlar.
BitVector32 sınıfı, ile aynı işlevselliği BitArraysağlayan ancak daha hızlı performansa sahip bir yapıdır. BitVector32 daha hızlıdır çünkü bir değer türüdür ve bu nedenle yığında ayrılırken BitArray , bir başvuru türüdür ve bu nedenle yığında ayrılır.
System.Collections.Specialized.BitVector32 tam olarak 32 bit depolayabilirken BitArray , değişken sayıda bit depolayabilir. BitVector32 hem bit bayraklarını hem de küçük tamsayıları depolayarak kullanıcıya sunulmayan veriler için ideal olmasını sağlar. Ancak, gerekli bit bayraklarının sayısı bilinmiyorsa, değişkense veya 32'den büyükse, bunun yerine kullanın BitArray .
BitArray ad alanındadır System.Collections ; BitVector32 ad alanındadır System.Collections.Specialized .
Bu koleksiyondaki öğelere tamsayı dizini kullanılarak erişilebilir. Bu koleksiyondaki dizinler sıfır tabanlıdır.
Oluşturucular
| Name | Description |
|---|---|
| BitArray(BitArray) |
Sınıfının belirtilen BitArrayöğesinden kopyalanan bit değerlerini içeren yeni bir örneğini BitArray başlatır. |
| BitArray(Boolean[]) |
Sınıfın BitArray , belirtilen Boolean dizisinden kopyalanan bit değerlerini içeren yeni bir örneğini başlatır. |
| BitArray(Byte[]) |
Sınıfın BitArray belirtilen bayt dizisinden kopyalanan bit değerlerini içeren yeni bir örneğini başlatır. |
| BitArray(Int32, Boolean) |
Başlangıçta belirtilen değere BitArray ayarlanmış, belirtilen sayıda bit değerini tutabilen sınıfın yeni bir örneğini başlatır. |
| BitArray(Int32) |
başlangıçta olarak ayarlanan |
| BitArray(Int32[]) |
Sınıfın BitArray , belirtilen 32 bit tamsayı dizisinden kopyalanan bit değerlerini içeren yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| Count |
içinde BitArraybulunan öğe sayısını alır. |
| IsReadOnly |
öğesinin salt okunur olup olmadığını BitArray belirten bir değer alır. |
| IsSynchronized |
'a BitArray erişimin eşitlenip eşitlenmediğini belirten bir değer alır (iş parçacığı güvenli). |
| Item[Int32] |
bitin değerini içinde belirli bir konumda BitArrayalır veya ayarlar. |
| Length |
içindeki BitArrayöğe sayısını alır veya ayarlar. |
| SyncRoot |
BitArrayerişimini eşitlemek için kullanılabilecek bir nesnesi alır. |
Yöntemler
| Name | Description |
|---|---|
| And(BitArray) |
Geçerli BitArray nesnenin öğeleri ile belirtilen dizideki ilgili öğeler arasında bit düzeyinde AND işlemini gerçekleştirir. Geçerli BitArray nesne bit düzeyinde AND işleminin sonucunu depolayacak şekilde değiştirilecek. |
| Clone() |
öğesinin sığ bir kopyasını BitArrayoluşturur. |
| CopyTo(Array, Int32) |
Hedef dizinin belirtilen dizininden başlayarak tamamını BitArray uyumlu bir tek boyutluya Arraykopyalar. |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| Get(Int32) |
Bitin değerini içinde belirli bir konumda BitArrayalır. |
| GetEnumerator() |
aracılığıyla BitArrayyineleyen bir numaralandırıcı döndürür. |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| HasAllSet() |
içindeki tüm bitlerin olarak |
| HasAnySet() |
içindeki herhangi bir bitin olarak |
| LeftShift(Int32) |
Geçerlinin BitArray tüm bit değerlerini bitlerde sola |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| Not() |
Geçerli BitArrayiçindeki tüm bit değerlerini tersine çevirerek, olarak ayarlanan |
| Or(BitArray) |
Geçerli BitArray nesnenin öğeleri ile belirtilen dizideki ilgili öğeler arasında bit düzeyinde OR işlemini gerçekleştirir. Geçerli BitArray nesne bit düzeyinde OR işleminin sonucunu depolayacak şekilde değiştirilecek. |
| PopCount() |
Bitin (1) açık olduğunu ve |
| RightShift(Int32) |
Geçerlinin BitArray tüm bit değerlerini bitlerde sağa |
| Set(Int32, Boolean) |
içindeki belirli bir konumdaki BitArray biti belirtilen değere ayarlar. |
| SetAll(Boolean) |
içindeki BitArray tüm bitleri belirtilen değere ayarlar. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
| Xor(BitArray) |
Belirtilen dizideki ilgili öğelere karşı geçerli BitArray nesnenin öğeleri arasında bit düzeyinde özel OR işlemi gerçekleştirir. Geçerli BitArray nesne, bit düzeyinde özel OR işleminin sonucunu depolayacak şekilde değiştirilir. |
Belirtik Arabirim Kullanımları
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
öğesinin öğelerini BitArray belirtilen Array dizinden başlayarak öğesine Arraykopyalar. |
| ICollection.Count |
içindeki BitArrayöğe sayısını alır. |
| ICollection.IsSynchronized |
BitArray erişimin eşitlenip eşitlenmediğini belirten bir değer alır (iş parçacığı güvenli). |
| ICollection.SyncRoot |
BitArrayerişimini eşitlemek için kullanılabilecek bir nesnesi alır. |
Uzantı Metotları
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Sorgunun paralelleştirilmesini etkinleştirir. |
| AsQueryable(IEnumerable) |
bir IEnumerable öğesine IQueryabledönüştürür. |
| Cast<TResult>(IEnumerable) |
öğesinin IEnumerable öğelerini belirtilen türe yazar. |
| OfType<TResult>(IEnumerable) |
Belirtilen türe göre bir IEnumerable öğesinin öğelerini filtreler. |
Şunlara uygulanır
İş Parçacığı Güvenliği
Bu türün genel statik (Shared Visual Basic'te) üyeleri iş parçacığı güvenlidir. Hiçbir örnek üyesi için iş parçacığı güvenliği garanti edilmez.
Bu uygulama, bir için BitArrayeşitlenmiş (iş parçacığı güvenli) sarmalayıcı sağlamaz.
Bir koleksiyonda numaralandırma, iş parçacığı açısından güvenli bir yordam değildir. Bir koleksiyon eşitlendiğinde bile, diğer iş parçacıkları yine de koleksiyonu değiştirebilir ve bu da numaralandırıcının bir özel durum oluşturmasına neden olur. Numaralandırma sırasında iş parçacığı güvenliğini garanti etmek için, tüm numaralandırma sırasında koleksiyonu kilitleyebilir veya diğer iş parçacıkları tarafından yapılan değişikliklerden kaynaklanan özel durumları yakalayabilirsiniz.