Partager via


BitArray.Or(BitArray) Méthode

Définition

Exécute l’opération OR au niveau du bit entre les éléments de l’objet BitArray actif et les éléments correspondants dans le tableau spécifié. L’objet BitArray actif est modifié pour stocker le résultat de l’opération OR au niveau du bit.

public:
 System::Collections::BitArray ^ Or(System::Collections::BitArray ^ value);
public System.Collections.BitArray Or (System.Collections.BitArray value);
member this.Or : System.Collections.BitArray -> System.Collections.BitArray
Public Function Or (value As BitArray) As BitArray

Paramètres

value
BitArray

Tableau utilisé pour exécuter l’opération OR au niveau du bit.

Retours

Tableau qui contient le résultat de l’opération OR au niveau du bit, qui est une référence à l’objet BitArray actif.

Exceptions

value a la valeur null.

value et le BitArray actuel n’ont pas le même nombre d’éléments.

Exemples

L’exemple de code suivant montre comment effectuer l’opération OR entre deux BitArray objets.

using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myList, int myWidth );
int main()
{
   
   // Creates and initializes two BitArrays of the same size.
   BitArray^ myBA1 = gcnew BitArray( 4 );
   BitArray^ myBA2 = gcnew BitArray( 4 );
   myBA1[ 0 ] = false;
   myBA1[ 1 ] = false;
   myBA1[ 2 ] = true;
   myBA1[ 3 ] = true;
   myBA2[ 0 ] = false;
   myBA2[ 1 ] = true;
   myBA2[ 2 ] = false;
   myBA2[ 3 ] = true;
   
   // Performs a bitwise OR 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();
   Console::WriteLine( "Result" );
   Console::Write( "OR:" );
   PrintValues( myBA1->Or( myBA2 ), 8 );
   Console::WriteLine();
   Console::WriteLine( "After OR" );
   Console::Write( "myBA1:" );
   PrintValues( myBA1, 8 );
   Console::Write( "myBA2:" );
   PrintValues( myBA2, 8 );
   Console::WriteLine();
   
   // Performing OR between BitArray instances of different sizes returns an exception.
   try
   {
      BitArray^ myBA3 = gcnew BitArray( 8 );
      myBA3[ 0 ] = false;
      myBA3[ 1 ] = false;
      myBA3[ 2 ] = false;
      myBA3[ 3 ] = false;
      myBA3[ 4 ] = true;
      myBA3[ 5 ] = true;
      myBA3[ 6 ] = true;
      myBA3[ 7 ] = true;
      myBA1->Or( myBA3 );
   }
   catch ( Exception^ myException ) 
   {
      Console::WriteLine( "Exception: {0}", myException );
   }

}

void PrintValues( IEnumerable^ myList, int myWidth )
{
   int i = myWidth;
   IEnumerator^ myEnum = myList->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ obj = safe_cast<Object^>(myEnum->Current);
      if ( i <= 0 )
      {
         i = myWidth;
         Console::WriteLine();
      }

      i--;
      Console::Write( "{0,8}", obj );
   }

   Console::WriteLine();
}

/* 
 This code produces the following output.
 
 Initial values
 myBA1:   False   False    True    True
 myBA2:   False    True   False    True

 Result
 OR:   False    True    True    True

 After OR
 myBA1:   False    True    True    True
 myBA2:   False    True   False    True

 Exception: System.ArgumentException: Array lengths must be the same.
    at System.Collections.BitArray.Or(BitArray value)
    at SamplesBitArray.Main()
 */
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 OR 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();

      Console.WriteLine( "Result" );
      Console.Write( "OR:" );
      PrintValues( myBA1.Or( myBA2 ), 8 );
      Console.WriteLine();

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

      // Performing OR 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.Or( 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.WriteLine();
         }
         i--;
         Console.Write( "{0,8}", obj );
      }
      Console.WriteLine();
   }
}


/*
This code produces the following output.

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

Result
OR:   False    True    True    True

After OR
myBA1:   False    True    True    True
myBA2:   False    True   False    True

Exception: System.ArgumentException: Array lengths must be the same.
   at System.Collections.BitArray.Or(BitArray value)
   at SamplesBitArray.Main()
*/
Imports System.Collections

Public Class SamplesBitArray    
    
    Public Shared Sub Main()
        
        ' Creates and initializes two BitArrays of the same size.
        Dim myBA1 As New BitArray(4)
        Dim myBA2 As New BitArray(4)
        myBA1(0) = False
        myBA1(1) = False
        myBA1(2) = True
        myBA1(3) = True
        myBA2(0) = False
        myBA2(2) = False
        myBA2(1) = True
        myBA2(3) = True
        
        ' Performs a bitwise OR 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()
        
        Console.WriteLine("Result")
        Console.Write("OR:")
        PrintValues(myBA1.Or(myBA2), 8)
        Console.WriteLine()
        
        Console.WriteLine("After OR")
        Console.Write("myBA1:")
        PrintValues(myBA1, 8)
        Console.Write("myBA2:")
        PrintValues(myBA2, 8)
        Console.WriteLine()
        
        ' Performing OR between BitArray instances of different sizes returns an exception.
        Try
            Dim myBA3 As New BitArray(8)
            myBA3(0) = False
            myBA3(1) = False
            myBA3(2) = False
            myBA3(3) = False
            myBA3(4) = True
            myBA3(5) = True
            myBA3(6) = True
            myBA3(7) = True
            myBA1.Or(myBA3)
        Catch myException As Exception
            Console.WriteLine("Exception: " + myException.ToString())
        End Try
    End Sub
    
    Public Shared Sub PrintValues(myList As IEnumerable, myWidth As Integer)
        Dim i As Integer = myWidth
        Dim obj As [Object]
        For Each obj In  myList
            If i <= 0 Then
                i = myWidth
                Console.WriteLine()
            End If
            i -= 1
            Console.Write("{0,8}", obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces the following output.
' 
' Initial values
' myBA1:   False   False    True    True
' myBA2:   False    True   False    True
' 
' Result
' OR:   False    True    True    True
' 
' After OR
' myBA1:   False    True    True    True
' myBA2:   False    True   False    True
' 
' Exception: System.ArgumentException: Array lengths must be the same.
'    at System.Collections.BitArray.Or(BitArray value)
'    at SamplesBitArray.Main()

Remarques

L’opération OR au niveau du bit retourne true si un opérande ou les deux sont true, et retourne false si les deux opérandes sont false.

Cette méthode est une O(n) opération, où n est Count.

S’applique à