C# BitArray Collection Tutorial | Learn in 1 Day FREE

Last updated on 12th Aug 2022, Blog, Tutorials

About author

Karan Baski (C# .Net Developer )

Karan Baski is a C# .Net Developer expert and subject specialist who has experience with Git, WPF,VB,.NET Framework,.NET Core, SVN,HTTP,.NET technology stack, WPF, C#, SQL server, Web API, ASP.NET..His articles help learners to get insights about the Domain.

(5.0) | 19847 Ratings 2061

Introduction to C# BitArray

The BitArray category maintains a compact array of bit values represented as Boolean values. Used once you have to be compelled to store bits, however you do not understand the amount of bits earlier. you’ll access the weather of the BitArray assortment employing a zero-based number index.


System.Collections.dll.Manages a compact array of bit values, which could be pictured as Booleans, within which correctly shows that the bit is on (1) and pretends shows the bit is off (0).

BitArray category ways and properties

  • Count – Gets the amount of parts contained in BitArray.
  • IsReadOnly- IsReadOnly Gets a value that indicates whether or not the BitArray is read-only.
  • Item – Gets or sets the worth of the bit at the required position in BitArray.
  • length – Gets or sets the amount of parts in BitArray.

Definition of C# BitArray

A bit array may be a mapping from a {number of|some|many} domain (nearly regularly quite a number integers) to values withinside the set . The values could also be taken as dark/light, absent/present, locked/unlocked, valid/invalid, etcetera. The issue is that their square measures the best viable values, in order that they’ll be saved in an exceedingly single bit. Unlike completely different arrays, the get entry to an unmated bit could also be controlled with the help of victimization creating use of an associate degree index to the array

Assuming its size (or length) to be n bits, the array could also be wont to specify a set of the domain (e.g. ), within which a 1-bit suggests the presence and a 0-bit the absence of a range of withinside the set. This set statistics form makes use of roughly n/w phrases of area, within which w is that the style of bits in each gizmo phrase.Whether the smallest amount substantial bit (of the phrase) or the utmost substantial bit suggests the smallest-index selection is basically immaterial, but the previous contains a tendency to be most well-liked (on little-endian machines).

Bit Manipulation with the BitArray

The ordinal piece of the C# Fundamentals educational exercise appearance at the use of the BitArray category. This kind of assortment may be used to carry associate degree exceptionally huge series of items that may be controlled either freely or altogether as an entire gathering.

The BitArray assortment

The BitArray assortment will hold huge gatherings of Boolean qualities or bit fields. it’s like completely different assortments that are talked regarding within the C# Fundamentals educational exercise. In any case, the substance of the assortment doesn’t seem to be protesting Boolean qualities. This suggests that the conduct of the category varies somewhat.

Executed assortment Interfaces

The BitArray assortment executes the properties and methods for the ICollection interface.This conduct is delineated within the previous assortment Interfaces article. The rest of this text portrays the additional utility given by BitArrays.


The BitArray category is unusual because it doesn’t provide a parameterless creator. BitArrays assortment ought to be fully introduced whereas started up utilizing one amongst six constructors. every populates the substance of the assortment in AN sudden method. The foremost easy creator makes a BitArray containing a number of Boolean qualities that are altogether imitative. The amount of items needed is passed as a variety rivalry.The BitArray category is found within the System. Assortments namespace therefore to execute the models, add utilizing System. Assortments; to the ASCII text file.

  • BitArray banners = new BitArray(16);

This creator will be stretched by passing a second, Boolean price. For this example, the created BitArray is measured by the quantity boundary and each element within the assortment is ready to the Boolean price.

  • BitArray banners = new BitArray(16, valid);

Perusing and Writing BitArray Contents

Perusing Individual Bits

Single items will be freed from a BitArray utilizing a record variety hooked up to the assortment name within sq. sections. The category to boot offers a Get strategy that acknowledges the file as a boundary and returns the value of the piece at the preset position. each strategy is exhibited beneath:

Composing Individual Bits

Composing Individual Bits

You can set and clear individual items in an exceedingly large BitArray. Likewise with studying the singular items, there are unit 2 strategies for doing intrinsically. initial and foremost, the record price may well be annexed to the assortment name and also the price of a bit relegated squarely. Besides, you’ll utilize the Set technique. This method acknowledges a variety boundary for the file of the factor to vary and a Boolean demonstrating the new price. The incidental to model shows the 2 strategies:

  • BitArray banners = new BitArray(16, bogus);
  • flags[0] = valid;
  • flags.Set(1, valid);

Composing Multiple Bits

Frequently you’ll ought to set or get all free from the items within a BitArray. this will be accomplished utilizing the SetAll technique. The technique needs one rivalry holding the new incentive for every piece within the assortment.

  • BitArray banners = new BitArray(16);
  • flags.SetAll(true);

BitArray Length

As the BitArray category carries out ICollection, it incorporates the Count property that profits the amount of items within the assortment. with this read-just property, BitArray offers a Length property which will be used to each solicit the amount of things within the assortment and to vary the length. At the purpose once the Length property is ready, the dimensions of the BitArray would possibly increment or decrease.Assuming that the new length is decreased than this variety of things, the assortment is shortened with all sections at records love or on top of the new length being forever deleted. within the event that the new length is greater than this variety of things, new things are a unit hooked up to the BitArray. every further piece is initially imitative.

Pros and cons:

Despite their simplicity, bit arrays have many distinct advantages over other data structures for the same problem. They are very compact. Other data structures do not allow n independent data to be stored in n / w words. They allow you to store and manipulate small arrays of bits in register files for extended periods of time without accessing memory. With the ability to take advantage of bit-level parallelism, limit memory access, and maximize data cache utilization, many other real datasets, even those that are progressively more efficient.

Often outperforms the data structure of. However, bit arrays are not all solutions. Specifically, without compression, a sparse set (a set with fewer elements than a range) would result in a temporally and spatially wasted set data structure. Compressed bit arrays, Judy arrays, trials, and even Bloom filters are better options for such tasks. Accessing individual items can be expensive and difficult to express in some languages.Random access is more common than sequential access, and if the array is relatively small, a byte array may be more suitable for byte-addressed machines. However, word arrays are probably not justified because they have very high storage overhead and incur additional cache misses unless you only have to specify word addresses on your machine.

About BitArray:

The BitArray class maintains a compact array of bit values represented as Boolean values. Here, “true” indicates that the bit is on (1), and “false” indicates that the bit is off (0). Used when you need to store bits, but you do not know the number of bits in advance. You can access the elements of the BitArray collection using a zero-based integer index. BitArray Class Methods and Properties.

Gets or sets the number of elements in BitArray

The following table lists some of the commonly used methods in the BitArray class.

  • public BitArray And (BitArray Value); – Performs a bitwise AND operation on the element in the current BitArray for the corresponding element in the specified BitArray.
  • public bool Get (int index); – Gets the value of the bit at a specific position in the BitArray.
  • public BitArray Not (); – Reverses all bit value in the current BitArray and changes the element set to true to false and the element set to false to true.
  • public BitArray Or (BitArray value); – Performs a bitwise OR operation on the elements in the current BitArray for the corresponding elements in the specified BitArray.
  • public void Set (int index, bool value); – Sets the bit at a specific position in the BitArray to the specified value.
  • public void SetAll (boolean value); Set all bits of the- BitArray to the specified value.
  • public BitArray Xor (BitArray value); – Performs a bitwise exclusive OR operation on the current BitArray element for the corresponding element of the specified BitArray.

C # programming with an image editor, this is a Windows Phone application, a very big project compared to the apps currently available for smartphones. Unfortunately, when we showed it to so-called technicians in 2013, we haven’t made it public yet, as people never respect the value of this software.Six months later, I took a digital imaging course in my major and taught me behind the scenes of what I wrote earlier as code.It took a long time to parse the 8MP picture, and there were several performance concerns with this code. Although its performance in the demo wasn’t the reason it was ultimately rejected, no changes were made to the code and it was eventually deemed unacceptable.A few years later, when troubleshooting a performance problem in a different piece of software, I came to the conclusion that the underlying data structures needed to be altered.When I re-examined the 2013 picture editor I had programmed, I saw that it made extensive use of arrays and lists. I’ve been considering what may be done to make it better and what data formats would be most effective.

How image recognition works

You know that C # is great. It provides multiple ways in which to figure with pictures. an awfully well-known feature is the ColorMatrix category. It makes it terribly simple to regulate the RGB, hue, saturation and brightness of a picture.

Grayscale image

Grayscale Images

Grayscale image is usually needed for image recognition algorithms or bound image operations like sharpening and blurring, and thresholds should be set. Next, a standard mistake is to store the bits of the edge image in an associate degree array that accepts bytes. The computer memory unit will take a price from zero to 255, however it truly contains all black and every one white pixels, therefore for a thresholded image, the worth you really set. Is 0 and 1. when in operation with bit operations like, XOR, OR, NOT. Here is that the real would like once mistreatment BitArray.

C #

BitArray has been breathing since .NET 1.1 and has multiple constructors, therefore it will settle for Boolean arrays, computer memory unit arrays, whole number arrays, and even different BitArrays. However, its advantage is that it’s inherent functions for operations like NOT, AND, OR, and XOR. Most of those functions are optimized to enhance performance.

  • BitArray assortment in C#
  • The BitArray assortment handles a compact array of bit values. These bit values are depicted as Boolean values. wherever true indicates one and false indicates zero.
  • BitArray assortment Constructors
  • The various constructors and their descriptions are shown below.
  • BitArray (BitArray)- This creator contains a replacement instance of the BitArray category that contains the bit values copied from the desired BitArray assortment. Initialize.
  • BitArray (Boolean [])- This creator initializes a replacement instance of the BitArray category that contains the bit values copied from the desired Boolean array.
  • BitArray (byte [])- This creator initializes a replacement instance of the BitArray category that contains the bit values copied from the desired computer memory unit array.
  • BitArray (Int32)- This creator initializes a replacement instance of the BitArray category that’s at first set to false and may hold a specific range of bit values. BitArray (Int32, Boolean) This creator initializes a replacement instance of the BitArray category that may hold {the specific|the required|the desired} range of bit worths set at the primary specified value.
  • BitArray (Int32 []) – This creator initializes a replacement instance of the BitArray category that contains the bit values copied from the desired 32bit whole number array.


The BitArray category deals with a smaller exhibit of spot esteems, that area unit self-addressed as Booleans, wherever real shows that the piece is on (1) and phony demonstrates the piece is off (0). it’s used once you actually need to store the items nevertheless don’t have the foggiest plan regarding the number of items earlier than time.

Are you looking training with Right Jobs?

Contact Us

Popular Courses