BitArray.And Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Namespace: System.Collections
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Function And ( _
value As BitArray _
) As BitArray
public BitArray And(
BitArray value
)
Parameters
- value
Type: System.Collections.BitArray
The BitArray with which to perform the bitwise AND operation.
Return Value
Type: System.Collections.BitArray
A BitArray containing the result of the bitwise AND operation on the elements in the current BitArray against the corresponding elements in the specified BitArray.
Exceptions
Exception | Condition |
---|---|
ArgumentNullException | value is nulla null reference (Nothing in Visual Basic). |
ArgumentException | value and the current BitArray do not have the same number of elements. |
Remarks
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.
Examples
The following code example shows how to apply AND to two BitArray instances.
Imports System.Collections
Public Class Example
Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
' Creates and initializes two BitArrays of the same size.
Dim myBA1 As New BitArray(4)
Dim myBA2 As New BitArray(4)
myBA1(1) = False
myBA1(0) = False
myBA1(3) = True
myBA1(2) = True
myBA2(2) = False
myBA2(0) = False
myBA2(3) = True
myBA2(1) = True
' Performs a bitwise AND operation between BitArray instances of the same size.
outputBlock.Text &= "Initial values" & vbCrLf
outputBlock.Text &= "myBA1:"
PrintValues(outputBlock, myBA1, 8)
outputBlock.Text &= "myBA2:"
PrintValues(outputBlock, myBA2, 8)
outputBlock.Text &= vbCrLf
outputBlock.Text &= "Result" & vbCrLf
outputBlock.Text &= "AND:"
PrintValues(outputBlock, myBA1.And(myBA2), 8)
outputBlock.Text &= vbCrLf
outputBlock.Text &= "After AND" & vbCrLf
outputBlock.Text &= "myBA1:"
PrintValues(outputBlock, myBA1, 8)
outputBlock.Text &= "myBA2:"
PrintValues(outputBlock, myBA2, 8)
outputBlock.Text &= vbCrLf
' Performing AND 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.And(myBA3)
Catch myException As Exception
outputBlock.Text &= "Exception: " + myException.ToString() & vbCrLf
End Try
End Sub
Public Shared Sub PrintValues(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal myList As IEnumerable, ByVal myWidth As Integer)
Dim i As Integer = myWidth
Dim obj As [Object]
For Each obj In myList
If i <= 0 Then
i = myWidth
outputBlock.Text &= vbCrLf
End If
i -= 1
outputBlock.Text += String.Format("{0,8}", obj)
Next obj
outputBlock.Text &= vbCrLf
End Sub 'PrintValues
End Class
' This code produces the following output.
'
' Initial values
' myBA1: False False True True
' myBA2: False True False True
'
' Result
' 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()
using System;
using System.Collections;
public class Example
{
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
// 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.
outputBlock.Text += "Initial values" + "\n";
outputBlock.Text += "myBA1:";
PrintValues(outputBlock, myBA1, 8);
outputBlock.Text += "myBA2:";
PrintValues(outputBlock, myBA2, 8);
outputBlock.Text += "\n";
outputBlock.Text += "Result" + "\n";
outputBlock.Text += "AND:";
PrintValues(outputBlock, myBA1.And(myBA2), 8);
outputBlock.Text += "\n";
outputBlock.Text += "After AND" + "\n";
outputBlock.Text += "myBA1:";
PrintValues(outputBlock, myBA1, 8);
outputBlock.Text += "myBA2:";
PrintValues(outputBlock, myBA2, 8);
outputBlock.Text += "\n";
// 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)
{
outputBlock.Text += "Exception: " + myException.ToString() + "\n";
}
}
public static void PrintValues(System.Windows.Controls.TextBlock outputBlock, IEnumerable myList, int myWidth)
{
int i = myWidth;
foreach (Object obj in myList)
{
if (i <= 0)
{
i = myWidth;
outputBlock.Text += "\n";
}
i--;
outputBlock.Text += String.Format("{0,8}", obj);
}
outputBlock.Text += "\n";
}
}
/*
This code produces the following output.
Initial values
myBA1: False False True True
myBA2: False True False True
Result
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()
*/
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.