- C# 基础教程
- C# - 首页
- C# - 概述
- C# - 环境
- C# - 程序结构
- C# - 基本语法
- C# - 数据类型
- C# - 类型转换
- C# - 变量
- C# - 常量
- C# - 运算符
- C# - 决策
- C# - 循环
- C# - 封装
- C# - 方法
- C# - 可空类型
- C# - 数组
- C# - 字符串
- C# - 结构体
- C# - 枚举
- C# - 类
- C# - 继承
- C# - 多态
- C# - 运算符重载
- C# - 接口
- C# - 命名空间
- C# - 预处理器指令
- C# - 正则表达式
- C# - 异常处理
- C# - 文件I/O
- C# 高级教程
- C# - 属性
- C# - 反射
- C# - 属性
- C# - 索引器
- C# - 委托
- C# - 事件
- C# - 集合
- C# - 泛型
- C# - 匿名方法
- C# - 不安全代码
- C# - 多线程
- C# 有用资源
- C# - 问题与解答
- C# - 快速指南
- C# - 有用资源
- C# - 讨论
C# - BitArray 类
BitArray 类管理一个紧凑的位值数组,这些位值表示为布尔值,其中 true 表示位打开 (1),false 表示位关闭 (0)。
当您需要存储位但事先不知道位数时,可以使用它。您可以使用从零开始的整数索引访问 BitArray 集合中的项。
BitArray 类的属性和方法
下表列出了一些常用的BitArray类的属性:
| 序号 | 属性及说明 |
|---|---|
| 1 | Count 获取 BitArray 中包含的元素个数。 |
| 2 | IsReadOnly 获取一个值,该值指示 BitArray 是否为只读。 |
| 3 | Item 获取或设置 BitArray 中特定位置的位的值。 |
| 4 | Length 获取或设置 BitArray 中的元素个数。 |
下表列出了一些常用的BitArray类的方法:
| 序号 | 方法及说明 |
|---|---|
| 1 | public BitArray And(BitArray value); 对当前 BitArray 中的元素与指定 BitArray 中的对应元素执行按位 AND 运算。 |
| 2 | public bool Get(int index); 获取 BitArray 中特定位置的位的值。 |
| 3 | public BitArray Not(); 反转当前 BitArray 中的所有位值,以便将设置为 true 的元素更改为 false,将设置为 false 的元素更改为 true。 |
| 4 | public BitArray Or(BitArray value); 对当前 BitArray 中的元素与指定 BitArray 中的对应元素执行按位 OR 运算。 |
| 5 | public void Set(int index, bool value); 将 BitArray 中特定位置的位设置为指定值。 |
| 6 | public void SetAll(bool value); 将 BitArray 中的所有位设置为指定值。 |
| 7 | public BitArray Xor(BitArray value); 对当前 BitArray 中的元素与指定 BitArray 中的对应元素执行按位异或运算。 |
示例
以下示例演示了 BitArray 类的用法:
using System;
using System.Collections;
namespace CollectionsApplication {
class Program {
static void Main(string[] args) {
//creating two bit arrays of size 8
BitArray ba1 = new BitArray(8);
BitArray ba2 = new BitArray(8);
byte[] a = { 60 };
byte[] b = { 13 };
//storing the values 60, and 13 into the bit arrays
ba1 = new BitArray(a);
ba2 = new BitArray(b);
//content of ba1
Console.WriteLine("Bit array ba1: 60");
for (int i = 0; i < ba1.Count; i++) {
Console.Write("{0, -6} ", ba1[i]);
}
Console.WriteLine();
//content of ba2
Console.WriteLine("Bit array ba2: 13");
for (int i = 0; i < ba2.Count; i++) {
Console.Write("{0, -6} ", ba2[i]);
}
Console.WriteLine();
BitArray ba3 = new BitArray(8);
ba3 = ba1.And(ba2);
//content of ba3
Console.WriteLine("Bit array ba3 after AND operation: 12");
for (int i = 0; i < ba3.Count; i++) {
Console.Write("{0, -6} ", ba3[i]);
}
Console.WriteLine();
ba3 = ba1.Or(ba2);
//content of ba3
Console.WriteLine("Bit array ba3 after OR operation: 61");
for (int i = 0; i < ba3.Count; i++) {
Console.Write("{0, -6} ", ba3[i]);
}
Console.WriteLine();
Console.ReadKey();
}
}
}
编译并执行上述代码后,将产生以下结果:
Bit array ba1: 60 False False True True True True False False Bit array ba2: 13 True False True True False False False False Bit array ba3 after AND operation: 12 False False True True False False False False Bit array ba3 after OR operation: 61 True False True True False False False False