Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

BitArray.And Method

Performs the bitwise AND operation between the elements of the current BitArray object and the corresponding elements in the specified array. The current BitArray object will be modified to store the result of the bitwise AND operation.

Namespace:  System.Collections
Assemblies:   System.Collections (in System.Collections.dll)
  mscorlib (in mscorlib.dll)

public BitArray And(
	BitArray value


Type: System.Collections.BitArray

The array with which to perform the bitwise AND operation.

Return Value

Type: System.Collections.BitArray
An array containing the result of the bitwise AND operation, which is a reference to the current BitArray object.


value is null.


value and the current BitArray do not have the same number of elements.

The bitwise AND operation returns true if both operands are true, and returns false if one or both operands are false.

This method is an O(n) operation, where n is Count.

The following code example shows how to perform the bitwise AND operation between two BitArray objects.

using System;
using System.Collections;
public class SamplesBitArray  {

   public static void Main()  {

      // Creates and initializes two BitArrays of the same size.
      BitArray myBA1 = new BitArray( 4 );
      BitArray myBA2 = new BitArray( 4 );
      myBA1[0] = myBA1[1] = false;
      myBA1[2] = myBA1[3] = true;
      myBA2[0] = myBA2[2] = false;
      myBA2[1] = myBA2[3] = true;

      // Performs a bitwise AND operation between BitArray instances of the same size.
      Console.WriteLine( "Initial values" );
      Console.Write( "myBA1:" );
      PrintValues( myBA1, 8 );
      Console.Write( "myBA2:" );
      PrintValues( myBA2, 8 );

      Console.WriteLine( "Result" );
      Console.Write( "AND:" );
      PrintValues( myBA1.And( myBA2 ), 8 );

      Console.WriteLine( "After AND" );
      Console.Write( "myBA1:" );
      PrintValues( myBA1, 8 );
      Console.Write( "myBA2:" );
      PrintValues( myBA2, 8 );

      // Performing AND between BitArray instances of different sizes returns an exception. 
      try  {
         BitArray myBA3 = new BitArray( 8 );
         myBA3[0] = myBA3[1] = myBA3[2] = myBA3[3] = false;
         myBA3[4] = myBA3[5] = myBA3[6] = myBA3[7] = true;
         myBA1.And( myBA3 );
      } catch ( Exception myException )  {
         Console.WriteLine("Exception: " + myException.ToString());

   public static void PrintValues( IEnumerable myList, int myWidth )  {
      int i = myWidth;
      foreach ( Object obj in myList ) {
         if ( i <= 0 )  {
            i = myWidth;
         Console.Write( "{0,8}", obj );


This code produces the following output.

Initial values
myBA1:   False   False    True    True
myBA2:   False    True   False    True

AND:   False   False   False    True

After AND
myBA1:   False   False   False    True
myBA2:   False    True   False    True

Exception: System.ArgumentException: Array lengths must be the same.
   at System.Collections.BitArray.And(BitArray value)
   at SamplesBitArray.Main()

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Portable Class Library

Supported in: Portable Class Library
© 2015 Microsoft