June 13, 2024


Step Into The Technology

How to use BitArray in .NET 7

7 min read
binary code matrix

The BitArray class in .Net 7 is a robust facts construction that stores and manipulates bits of info. Each component in a BitArray can only hold a single little bit ( or 1) represented as fake or correct, exactly where wrong suggests the bit is off () and genuine implies the bit is on (1). BitArrays can retail store flags or proficiently conduct bitwise functions on data.

This short article talks about using BitArray in C# with relevant code examples where ever applicable. To get the job done with the code examples provided in this write-up, you ought to have Visible Studio 2022 set up in your procedure. If you really don’t already have a copy, you can download Visible Studio 2022 listed here.

Produce a console application undertaking in Visible Studio

Very first off, let’s produce a .Internet Core console software task in Visible Studio. Assuming Visible Studio 2022 is set up in your system, adhere to the actions outlined down below to produce a new .Net Core Console Application task in Visual Studio.

  1. Launch the Visual Studio IDE.
  2. Click on on “Create new project.”
  3. In the “Create new project” window, pick “Console App (.Net Core)” from the record of templates displayed.
  4. Simply click Up coming.
  5. In the “Configure your new project” window proven next, specify the name and area for the new project.
  6. Click on Next
  7. In the “Additional information” window revealed subsequent, pick “.Web 7 (Preview)” as the Framework variation you would like to use.
  8. Click Develop.

We’ll use this .Internet 7 console software challenge to do the job with BitArray in the subsequent sections of this write-up.

What is a BitArray?

A BitArray is a type contained in the Process.Collections namespace that represents a compact array of bit values. These values are expressed as boolean values, i.e., accurate and phony. Here, the worth genuine means the little bit is on, and the benefit bogus usually means the little bit is off.

Since the BitArray class is found in the System.Collections namespace, you will need to have to include things like a using directive for that namespace in your code. The BitArray course is declared in the Procedure.Collections namespace as proven down below.

public sealed class BitArray : ICloneable, System.Collections.ICollection

Generate a BitArray in .Net 7

You can make a BitArray of a specified measurement and fill it with all untrue values as demonstrated in the code snippet provided down below.

var bitArray = new BitArray(10)

You can also move in a list of booleans to build a BitArray of a distinct dimensions and set the values.

var bitArray = new BitArray(new bool[] accurate, phony, true)

When you have created your BitArray, you can entry and manipulate the specific bits making use of the indexer. The indexer expects an integer and will return or set the benefit of that bit.

bitArray[0] = legitimate //sets the initial bit to real
bitArray[1] = untrue //sets the second bit to fake
bitArray[0] //returns the value of the 1st little bit (as a bool)

The subsequent code snippet can be made use of to generate a BitArray, set values to its aspects, and then retrieve and display screen the worth of a specific index in the BitArray.

BitArray bitArray = new BitArray(5)
bitArray[0] = accurate
bitArray[1] = bogus
bitArray[2] = accurate
bitArray[3] = phony
bitArray[4] = false

When you execute the previously mentioned piece of code, the values accurate and untrue will be shown at the console window as proven in Figure 1.

bitarray 01 IDG

Determine 1.

Manipulate bits in a BitArray

You can manipulate the bits in a BitArray both working with its index or working with the Get and Established strategies of the BitArray course. To established or retrieve several bits from a BitArray, you can use the SetAll() and GetAll() strategies as shown in the code snippet given down below.

bitArray.SetAll(bogus) //established all bits of the little bit array to 
bitArray.Established(, accurate) //set initially bit of the little bit array to 1
bitArray.Established(1, false) //set the second bit of the bit array to
bool outcome = (bitArray[0] == 1) //verify if to start with bit is equal to 1

Examine if a BitArray is read-only

If you require to examine if a BitArray is ReadOnly, you can use the IsReadOnly home. This home returns a Boolean price that suggests whether or not the BitArray is examine-only. The subsequent code snippet exhibits how you can check out if a BitArray is read through-only.

BitArray bitArray = new BitArray(new byte[]  , 1, , 1,  )

When you execute the over piece of code, the textual content “False” will be shown at the console window.

Size and Count homes in a BitArray

The Size house of a BitArray returns the quantity of bits in the array. The Rely residence returns the depend of the range of accurate and bogus values in the BitArray. Be aware that the Size assets will constantly return the total selection of bits in the array, even if all of them are fake. In other phrases, the Size and Rely attributes will screen identical values for a BitArray.

The adhering to piece of code illustrates how you can get the Size and Rely of a BitArray.

var bitArray = new BitArray(new bool[]  legitimate, fake, genuine, phony )
Console.WriteLine("Duration: " + bitArray.Size)
Console.WriteLine("Rely: " + bitArray.Rely)

When you execute the over code, the output will be similar to that revealed in Determine 2.

bitarray 02 IDG

Figure 2.

You may want to check out no matter whether or not your BitArray instance is synchronized. This can be done by contacting the instance’s IsSynchronized residence, which will return accurate if the BitArray is synchronized and wrong usually.

Accomplish AND, OR, and NOT operations in a BitArray

The pursuing code listing demonstrates how you can accomplish a bitwise AND operation on two BitArray situations. A bitwise AND operation returns real (or 1) if the two operands are correct, and returns untrue otherwise. A bitwise OR procedure returns real if either or both equally operands are correct, and false if not.

var bitArray1 = new BitArray(new bool[]  legitimate, bogus, true, fake, accurate )
var bitArray2 = new BitArray(new bool[] real, fake, true, accurate, genuine )
bitArray1.Established(, accurate)
bitArray1.Set(1, phony)
bitArray1.Established(2, legitimate)
bitArray1.Set(3, genuine)
bitArray1.Set(4, bogus)
bitArray2.Established(, true)
bitArray2.Established(1, genuine)
bitArray2.Set(2, false)
bitArray2.Set(3, real)
bitArray2.Established(4, wrong)
Console.WriteLine("Displaying the elements of bitArray1 immediately after AND operation")
for (int i = i < bitArray1.Count i++)

    Console.Write(bitArray1[i] + "t")

When you execute the above code, the value of each element of bitArray1 will be displayed after the AND operation.

bitarray 03 IDG

Figure 3.

To perform a bitwise OR operation on two BitArrays, you can simply replace the AND operator with the OR operator in the preceding example. In other words, replace bitArray1.And(bitArray2) with bitArray1.Or(bitArray2).

var bitArray1 = new BitArray(new bool[]  true, false, true, false, true )
var bitArray2 = new BitArray(new bool[] true, false, true, true, true )
bitArray1.Set(0, true)
bitArray1.Set(1, false)
bitArray1.Set(2, true)
bitArray1.Set(3, true)
bitArray1.Set(4, false)
bitArray2.Set(0, true)
bitArray2.Set(1, true)
bitArray2.Set(2, false)
bitArray2.Set(3, true)
bitArray2.Set(4, false)
Console.WriteLine("Displaying the elements of bitArray1 after OR operation")
for (int i = 0 i < bitArray1.Count i++)

    Console.Write(bitArray1[i] + "t")

Performing a NOT operation on a BitArray will change all true elements to false and vice versa. The following code snippet would change the elements of bitArray1 from true, false, false, true, false to false, true, true, false, true .


Common uses for BitArrays

There are a number of common use cases for a BitArray, such as for performing bitwise operations to manipulate an image. The color of each pixel in an image is defined by a certain number of bits. Changing the color of a pixel requires manipulating the bits that comprise it. Using BitArray, it is easy to manipulate individual bits within an array.

BitArray is also commonly used when dealing with network packets. Packets contain a large amount of data, which may be formatted as bits or bytes depending on the protocol. You can easily extract and manipulate the bits contained in each packet with BitArray.

You can also use a BitArray to represent Boolean values in your application. By doing so, you can reduce your memory and storage requirements. A BitArray consumes 1/8th the space consumed by a bool because a BitArray stores only one bit for each value. Additionally, whereas a byte can hold only eight values and an integer can hold only 32, a BitArray can hold an arbitrary number of boolean values. If you are storing a massive amount of data, this difference can be quite significant.

Finally, when it comes to processing a huge collection, the advantages of BitArray and bitwise processing will become clear as soon as you start fetching data from the memory. For example, there will be a significant difference in performance between a BitArray of 10000 items and a List of 10000 items. There will be eight times more memory reads required for the List than for the BitArray.

Copyright © 2022 IDG Communications, Inc.

Leave a Reply

hopeforharmonie.co.uk | Newsphere by AF themes.