BitArray.Or 方法
对当前 BitArray 中的元素和指定的 BitArray 中的相应元素执行按位“或”运算。
**命名空间:**System.Collections
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
Public Function Or ( _
value As BitArray _
) As BitArray
用法
Dim instance As BitArray
Dim value As BitArray
Dim returnValue As BitArray
returnValue = instance.Or(value)
public BitArray Or (
BitArray value
)
public:
BitArray^ Or (
BitArray^ value
)
public BitArray Or (
BitArray value
)
public function Or (
value : BitArray
) : BitArray
参数
- value
要对其执行按位“或”运算的 BitArray。
返回值
BitArray,包含对当前 BitArray 中的元素和指定的 BitArray 中的相应元素执行按位“或”运算的结果。
异常
异常类型 | 条件 |
---|---|
value 为 空引用(在 Visual Basic 中为 Nothing)。 |
|
value 和当前 BitArray 的元素数不同。 |
备注
如果一个或两个操作数为 true,则按位“或”运算返回 true;如果两个操作数都为 false,则按位“或”运算返回 false。
此方法的运算复杂度为 O(n),其中 n 是 Count。
示例
下面的代码示例演示如何将 OR 应用于两个 BitArray 实例。
Imports System
Imports System.Collections
Imports Microsoft.VisualBasic
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 'PrintValues
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()
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()
*/
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()
*/
import System.*;
import System.Collections.*;
public class SamplesBitArray
{
public static void main(String[] args)
{
// Creates and initializes two BitArrays of the same size.
BitArray myBA1 = new BitArray(4);
BitArray myBA2 = new BitArray(4);
myBA1.set_Item(0, false);
myBA1.set_Item(1, false);
myBA1.set_Item(2, true);
myBA1.set_Item(3, true);
myBA2.set_Item(0, false);
myBA2.set_Item(2, false);
myBA2.set_Item(1, true);
myBA2.set_Item(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.set_Item(0, false);
myBA3.set_Item(1, false);
myBA3.set_Item(2, false);
myBA3.set_Item(3, false);
myBA3.set_Item(4, true);
myBA3.set_Item(5, true);
myBA3.set_Item(6, true);
myBA3.set_Item(7, true);
myBA1.Or(myBA3);
}
catch (System.Exception myException) {
Console.WriteLine(("Exception: " + myException.ToString()));
}
} //main
public static void PrintValues(IEnumerable myList, int myWidth)
{
int i = myWidth;
IEnumerator objMyEnum = myList.GetEnumerator();
while (objMyEnum.MoveNext()) {
Object obj = objMyEnum.get_Current();
if (i <= 0) {
i = myWidth;
Console.WriteLine();
}
i--;
Console.Write("{0,8}", obj);
}
Console.WriteLine();
} //PrintValues
} //SamplesBitArray
/*
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(String[] args)
*/
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0、1.0