BitArray Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
A bitértékek tömörített tömbjének kezelése logikai értékként, ahol true azt jelzi, hogy a bit be van kapcsolva (1), és false azt jelzi, hogy a bit ki van kapcsolva (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
- Öröklődés
-
BitArray
- Attribútumok
- Megvalósítás
Példák
Az alábbi példakód bemutatja, hogyan hozhat létre és inicializálhat egy objektumot BitArray , és hogyan nyomtathatja ki az értékeit.
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
Megjegyzések
Az BitArray osztály egy gyűjteményosztály, amelyben a kapacitás mindig ugyanaz, mint a darabszám. Az elemek a tulajdonság növelésével lesznek hozzáadva a BitArray tulajdonsághozLength; az elemek a tulajdonság csökkentésével Length törlődnek. A méretet BitArray az ügyfél szabályozza; az indexelés a BitArray vége után egy ArgumentException. Az BitArray osztály olyan metódusokat biztosít, amelyek más gyűjteményekben nem találhatók, beleértve azokat is, amelyek lehetővé teszik, hogy egyszerre több elem is módosítható legyen egy szűrő használatával, például And, Or, Xor , Notés SetAll.
Az BitVector32 osztály olyan struktúra, amely ugyanazokat a funkciókat biztosítja, mint BitArraya , de gyorsabb teljesítményt. BitVector32 gyorsabb, mert értéktípus, ezért a veremen van lefoglalva, míg BitArray referenciatípus, ezért a halomra van lefoglalva.
System.Collections.Specialized.BitVector32 pontosan 32 bitet tárolhat, míg BitArray változó számú bitet tárolhat. BitVector32 bitjelzőket és kis egész számokat is tárol, így ideális a felhasználó számára nem elérhető adatokhoz. Ha azonban a szükséges bitjelölők száma ismeretlen, változó vagy 32-nél nagyobb, használja BitArray helyette.
BitArray a System.Collections névtérben van; BitVector32 a System.Collections.Specialized névtérben van.
A gyűjtemény elemei egész számindex használatával érhetők el. A gyűjtemény indexei nulla alapúak.
Konstruktorok
| Name | Description |
|---|---|
| BitArray(BitArray) |
Inicializálja az osztály új példányát, amely a BitArray megadottból BitArraymásolt bitértékeket tartalmazza. |
| BitArray(Boolean[]) |
Inicializálja az BitArray osztály új példányát, amely a megadott logikai tömbből másolt bitértékeket tartalmazza. |
| BitArray(Byte[]) |
Inicializálja az BitArray osztály új példányát, amely a megadott bájttömbből másolt bitértékeket tartalmazza. |
| BitArray(Int32, Boolean) |
Inicializálja az BitArray osztály új példányát, amely képes a megadott számú bitérték tárolására, amelyek kezdetben a megadott értékre vannak állítva. |
| BitArray(Int32) |
Inicializálja az BitArray osztály új példányát, amely képes a megadott számú bitérték tárolására, amelyek kezdetben a következőre |
| BitArray(Int32[]) |
Inicializálja az BitArray osztály új példányát, amely a megadott 32 bites egész számból másolt bitértékeket tartalmazza. |
Tulajdonságok
| Name | Description |
|---|---|
| Count |
Lekéri a .BitArray |
| IsReadOnly |
Beolvas egy értéket, amely jelzi, hogy az BitArray írásvédett-e. |
| IsSynchronized |
Beolvas egy értéket, amely jelzi, hogy a BitArray hozzáférés szinkronizálva van-e (a szál biztonságos). |
| Item[Int32] |
Lekéri vagy beállítja a bit értékét egy adott pozícióban a BitArray. |
| Length |
Lekéri vagy beállítja BitArraya . |
| SyncRoot |
Lekéri az objektumot, amely a hozzáférés szinkronizálására használható.BitArray |
Metódusok
| Name | Description |
|---|---|
| And(BitArray) |
Bitenkénti ÉS műveletet hajt végre az aktuális BitArray objektum elemei és a megadott tömb megfelelő elemei között. Az aktuális BitArray objektum a bitenkénti ÉS művelet eredményének tárolására módosul. |
| Clone() |
Létrehoz egy sekély másolatot a BitArray. |
| CopyTo(Array, Int32) |
A teljes BitArray példányt egy kompatibilis egydimenziósra Arraymásolja a céltömb megadott indexétől kezdve. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| Get(Int32) |
Lekéri a bit értékét egy adott pozícióban a BitArray. |
| GetEnumerator() |
Egy enumerátort ad vissza, amely a BitArray. |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| HasAllSet() |
Meghatározza, hogy az összes bit a BitArray következőre |
| HasAnySet() |
Azt határozza meg, hogy a BitArray bit bármelyik része be van-e állítva |
| LeftShift(Int32) |
Az aktuális BitArray bit értékeit a biteken balra |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| Not() |
Az aktuális BitArraybitértékeket invertálta, így az elemek |
| Or(BitArray) |
Bitenkénti VAGY műveletet hajt végre az aktuális BitArray objektum elemei és a megadott tömb megfelelő elemei között. Az aktuális BitArray objektum a bitenkénti VAGY művelet eredményének tárolására módosul. |
| PopCount() |
A bitértékek tömörített tömbjének kezelése logikai értékként, ahol |
| RightShift(Int32) |
Az aktuális BitArray bit értékeit a biteken jobbra |
| Set(Int32, Boolean) |
Beállítja a bitet egy adott pozícióban a BitArray megadott értékre. |
| SetAll(Boolean) |
A megadott értékre állítja az BitArray összes bitet. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| Xor(BitArray) |
Bitenkénti kizárólagos VAGY műveletet hajt végre az aktuális BitArray objektum elemei között a megadott tömb megfelelő elemeivel. Az aktuális BitArray objektum a bitenkénti kizárólagos VAGY művelet eredményének tárolására módosul. |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Másolja a fájl elemeit BitArray egy Array, a megadott Array indextől kezdődőre. |
| ICollection.Count |
Lekéri a BitArray. |
| ICollection.IsSynchronized |
Olyan értéket kap, amely jelzi, hogy a BitArray hozzáférés szinkronizálva van-e (a szál biztonságos). |
| ICollection.SyncRoot |
Lekéri az objektumot, amely a hozzáférés szinkronizálására használható.BitArray |
Bővítő metódusok
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Lehetővé teszi a lekérdezés párhuzamosítását. |
| AsQueryable(IEnumerable) |
Átalakítja az egyiket IEnumerableIQueryable. |
| Cast<TResult>(IEnumerable) |
Egy elem elemeit IEnumerable a megadott típusra veti. |
| OfType<TResult>(IEnumerable) |
Egy adott típus alapján szűri IEnumerable egy adott elem elemeit. |
A következőre érvényes:
Szálbiztonság
A nyilvános statikus (Shared Visual Basic) ilyen típusú tagjai szálbiztosak. A példánytagok nem garantáltan szálbiztosak.
Ez az implementáció nem biztosít szinkronizált (szálbiztos) burkolót egy BitArray.
A gyűjteményen keresztüli számbavétel alapvetően nem szálbiztos eljárás. A gyűjtemény szinkronizálása esetén is más szálak módosíthatják a gyűjteményt, ami miatt az enumerátor kivételt okoz. Az enumerálás során a szálbiztonság garantálása érdekében zárolhatja a gyűjteményt a teljes enumerálás során, vagy elkaphatja a más szálak által végrehajtott módosításokból eredő kivételeket.