BitArray.SetAll Method (System.Collections)

Switch View :
ScriptFree
.NET Framework Class Library
BitArray.SetAll Method

Sets all bits in the BitArray to the specified value.

Namespace:  System.Collections
Assembly:  mscorlib (in mscorlib.dll)
Syntax

Visual Basic
Public Sub SetAll ( _
	value As Boolean _
)
C#
public void SetAll(
	bool value
)
Visual C++
public:
void SetAll(
	bool value
)
F#
member SetAll : 
        value:bool -> unit 

Parameters

value
Type: System.Boolean
The Boolean value to assign to all bits.
Remarks

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

Examples

The following code example shows how to set and get specific elements in a BitArray.

Visual Basic

Imports System
Imports System.Collections
Imports Microsoft.VisualBasic

Public Class SamplesBitArray    

    Public Shared Sub Main()

        ' Creates and initializes a BitArray.
        Dim myBA As New BitArray(5)

        ' Displays the properties and values of the BitArray.
        Console.WriteLine("myBA values:")
        PrintIndexAndValues(myBA)

        ' Sets all the elements to true.
        myBA.SetAll(True)

        ' Displays the properties and values of the BitArray.
        Console.WriteLine("After setting all elements to true,")
        PrintIndexAndValues(myBA)

        ' Sets the last index to false.
        myBA.Set(myBA.Count - 1, False)

        ' Displays the properties and values of the BitArray.
        Console.WriteLine("After setting the last element to false,")
        PrintIndexAndValues(myBA)

        ' Gets the value of the last two elements.
        Console.WriteLine("The last two elements are: ")
        Console.WriteLine("    at index {0} : {1}", _
           myBA.Count - 2, myBA.Get(myBA.Count - 2))
        Console.WriteLine("    at index {0} : {1}", _
           myBA.Count - 1, myBA.Get(myBA.Count - 1))
    End Sub 'Main

    Public Shared Sub PrintIndexAndValues(myCol As IEnumerable)
        Dim i As Integer
        Dim obj As Object
        i = 0
        For Each obj In  myCol
            Console.WriteLine("    [{0}]:    {1}", i, obj)
            i = i + 1
        Next obj
        Console.WriteLine()
    End Sub 'PrintValues

End Class

' This code produces the following output.
' 
' myBA values:
'     [0]:    False
'     [1]:    False
'     [2]:    False
'     [3]:    False
'     [4]:    False
' 
' After setting all elements to true,
'     [0]:    True
'     [1]:    True
'     [2]:    True
'     [3]:    True
'     [4]:    True
' 
' After setting the last element to false,
'     [0]:    True
'     [1]:    True
'     [2]:    True
'     [3]:    True
'     [4]:    False
' 
' The last two elements are:
'     at index 3 : True
'     at index 4 : False



C#

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

   public static void Main()  {

      // Creates and initializes a BitArray.
      BitArray myBA = new BitArray( 5 );

      // Displays the properties and values of the BitArray.
      Console.WriteLine( "myBA values:" );
      PrintIndexAndValues( myBA );

      // Sets all the elements to true.
      myBA.SetAll( true );

      // Displays the properties and values of the BitArray.
      Console.WriteLine( "After setting all elements to true," );
      PrintIndexAndValues( myBA );

      // Sets the last index to false.
      myBA.Set( myBA.Count - 1, false );

      // Displays the properties and values of the BitArray.
      Console.WriteLine( "After setting the last element to false," );
      PrintIndexAndValues( myBA );

      // Gets the value of the last two elements.
      Console.WriteLine( "The last two elements are: " );
      Console.WriteLine( "    at index {0} : {1}", myBA.Count - 2, myBA.Get( myBA.Count - 2 ) );
      Console.WriteLine( "    at index {0} : {1}", myBA.Count - 1, myBA.Get( myBA.Count - 1 ) );
   }


   public static void PrintIndexAndValues( IEnumerable myCol )  {
      int i = 0;
      foreach ( Object obj in myCol ) {
         Console.WriteLine( "    [{0}]:    {1}", i++, obj );
      }
      Console.WriteLine();
   }

}
/* 
This code produces the following output.

myBA values:
    [0]:    False
    [1]:    False
    [2]:    False
    [3]:    False
    [4]:    False

After setting all elements to true,
    [0]:    True
    [1]:    True
    [2]:    True
    [3]:    True
    [4]:    True

After setting the last element to false,
    [0]:    True
    [1]:    True
    [2]:    True
    [3]:    True
    [4]:    False

The last two elements are:
    at index 3 : True
    at index 4 : False

*/ 


Visual C++

using namespace System;
using namespace System::Collections;
void PrintIndexAndValues( IEnumerable^ myCol );
int main()
{

   // Creates and initializes a BitArray.
   BitArray^ myBA = gcnew BitArray( 5 );

   // Displays the properties and values of the BitArray.
   Console::WriteLine( "myBA values:" );
   PrintIndexAndValues( myBA );

   // Sets all the elements to true.
   myBA->SetAll( true );

   // Displays the properties and values of the BitArray.
   Console::WriteLine( "After setting all elements to true," );
   PrintIndexAndValues( myBA );

   // Sets the last index to false.
   myBA->Set( myBA->Count - 1, false );

   // Displays the properties and values of the BitArray.
   Console::WriteLine( "After setting the last element to false," );
   PrintIndexAndValues( myBA );

   // Gets the value of the last two elements.
   Console::WriteLine( "The last two elements are: " );
   Console::WriteLine( "    at index {0} : {1}", myBA->Count - 2, myBA->Get( myBA->Count - 2 ) );
   Console::WriteLine( "    at index {0} : {1}", myBA->Count - 1, myBA->Get( myBA->Count - 1 ) );
}

void PrintIndexAndValues( IEnumerable^ myCol )
{
   int i = 0;
   IEnumerator^ myEnum = myCol->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ obj = safe_cast<Object^>(myEnum->Current);
      Console::WriteLine( "    [{0}]:    {1}", i++, obj );
   }

   Console::WriteLine();
}

/* 
 This code produces the following output.

 myBA values:
     [0]:    False
     [1]:    False
     [2]:    False
     [3]:    False
     [4]:    False

 After setting all elements to true,
     [0]:    True
     [1]:    True
     [2]:    True
     [3]:    True
     [4]:    True

 After setting the last element to false,
     [0]:    True
     [1]:    True
     [2]:    True
     [3]:    True
     [4]:    False

 The last two elements are:
     at index 3 : True
     at index 4 : False

 */


Version Information

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also

Reference

Community Content

Silvermind1
Odd behaviour with SetAll( true )

If you have a BitArray with a length of let's say 7 and you use the method SetAll( true ) you would expect 127 when converted to a Decimal but you would get -1 which is the value for a length of 32. Same happens when invoking the constructor with new BitArray( 7, true );

One Workaround =
BitArray bitArray = new BitArray();
bitArray.Length = 7;

for ( int i = 0; i < bitArray.Length; i++ )
{
  bitsArray = true;
}