Open In App

C# | Enumerator that iterates through the BitArray

Last Updated : 01 Feb, 2019
Improve
Improve
Like Article
Like
Save
Share
Report

The BitArray class manages a compact array of bit values, which are represented as Booleans, where true indicates that the bit is on i.e, 1 and false indicates the bit is off i.e, 0. This class is contained in System.Collections namespace.
BitArray.GetEnumerator method is used to get an enumerator which iterates through the BitArray.

Properties:

  • The BitArray class is a collection class in which the capacity is always the same as the count.
  • Elements are added to a BitArray by increasing the Length property.
  • Elements are deleted by decreasing the Length property.
  • The BitArray class provides methods like And, Or, Xor, Not, and SetAll.
  • Elements in this collection can be accessed using an integer index. Indexes in this collection are zero-based.

Syntax:

public System.Collections.IEnumerator GetEnumerator ();

Return Value: This method returns an IEnumerator for the entire BitArray.

Below programs illustrate the use of BitArray.GetEnumerator Method:

Example 1:




// C# code to return an enumerator
// that iterates through the BitArray
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a BitArray myBitArr
        // Initializing all the values to true
        BitArray myBitArr = new BitArray(5, true);
  
        // Function calling
        PrintIndexAndValues(myBitArr);
    }
  
    // Function to display bits
    public static void PrintIndexAndValues(IEnumerable myArr)
    {
        foreach(Object obj in myArr)
        {
            Console.WriteLine(obj);
        }
    }
}


Output:

True
True
True
True
True

Example 2:




// C# code to return an enumerator
// that iterates through the BitArray
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a BitArray myBitArr
        BitArray myBitArr = new BitArray(5);
  
        // Initializing all the bits in myBitArr
        myBitArr[0] = false;
        myBitArr[1] = true;
        myBitArr[2] = true;
        myBitArr[3] = false;
        myBitArr[4] = true;
  
        // Function calling
        PrintIndexAndValues(myBitArr);
    }
  
    // Function to display bits
    public static void PrintIndexAndValues(IEnumerable myArr)
    {
        foreach(Object obj in myArr)
        {
            Console.WriteLine(obj);
        }
    }
}


Output:

False
True
True
False
True

Note:

  • The foreach statement of the C# language hides the complexity of the enumerators. Therefore, using foreach is recommended, instead of directly manipulating the enumerator.
  • Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
  • An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and its behavior is undefined.
  • This method is an O(1) operation.

Reference:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads