Csharp/C Sharp/Collections Data Structure/BitArray
Содержание
Demonstrate BitArray
<source lang="csharp"> // Demonstrate BitArray.
using System; using System.Collections;
public class BADemo {
public static void showbits(string rem, BitArray bits) { Console.WriteLine(rem); for(int i=0; i < bits.Count; i++) Console.Write("{0, -6} ", bits[i]); Console.WriteLine("\n"); } public static void Main() { BitArray ba = new BitArray(8); byte[] b = { 67 }; BitArray ba2 = new BitArray(b); showbits("Original contents of ba:", ba); ba = ba.Not(); showbits("Contents of ba after Not:", ba); showbits("Contents of ba2:", ba2); BitArray ba3 = ba.Xor(ba2); showbits("Result of ba XOR ba2:", ba3); }
}
</source>
illustrates the use of a BitArray
<source lang="csharp"> /*
illustrates the use of a BitArray
- /
using System; using System.Collections; public class Example11_4 {
public static void Main() { // create a BitArray object BitArray myBitArray = new BitArray(4); // display the Length property Console.WriteLine("myBitArray.Length = " + myBitArray.Length); // set the four elements of the BitArray myBitArray[0] = false; myBitArray[1] = true; myBitArray[2] = true; myBitArray[3] = false; // display the elements of the BitArray for (int counter = 0; counter < myBitArray.Count; counter++) { Console.WriteLine("myBitArray[" + counter + "] = " + myBitArray[counter]); } }
}
</source>
illustrates the use of BitArray methods
<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110
- /
/*
Example11_5.cs illustrates the use of BitArray methods
- /
using System; using System.Collections; public class Example11_5 {
// the DisplayBitArray() method displays the elements in the // supplied BitArray public static void DisplayBitArray( string arrayListName, BitArray myBitArray ) { for (int counter = 0; counter < myBitArray.Count; counter++) { Console.WriteLine(arrayListName + "[" + counter + "] = " + myBitArray[counter]); } } public static void Main() { // create a BitArray object BitArray myBitArray = new BitArray(4); myBitArray[0] = false; myBitArray[1] = true; myBitArray[2] = true; myBitArray[3] = false; DisplayBitArray("myBitArray", myBitArray); // create another BitArray object, passing myBitArray to // the constructor BitArray anotherBitArray = new BitArray(myBitArray); DisplayBitArray("anotherBitArray", myBitArray); // use the Not() method to reverse the elements in myBitArray Console.WriteLine("Using the Not() method to reverse the element\n" + " values in myBitArray"); myBitArray.Not(); DisplayBitArray("myBitArray", myBitArray); // use the Or() method to perform an OR operation on the elements // in myBitArray and anotherBitArray Console.WriteLine("Using the Or() method to perform an OR operation on\n" + " the elements in myBitArray and anotherBitArray"); myBitArray.Or(anotherBitArray); DisplayBitArray("myBitArray", myBitArray); }
}
</source>
Use BitArray collection as Flag
<source lang="csharp"> using System; using System.Collections; public class Starter {
public static void Main() { Hashtable employees = new Hashtable(); employees.Add("A100", new Employee("Ben", true, false, true)); employees.Add("V100", new Employee("Valerie", false, false, true)); Participation((Employee)employees["A100"]); Participation((Employee)employees["V100"]); } public static void Participation(Employee person) { Console.WriteLine(person.Name + ":"); if (person.InProfitSharing) { Console.WriteLine(" Participating in Profit Sharing"); } if (person.InHealthPlan) { Console.WriteLine(" Participating in Health Plan"); } if (person.InCreditUnion) { Console.WriteLine(" Participating in Credit Union"); } }
} public class Employee {
public Employee(string emplName) { propName = emplName; eflags.SetAll(true); } public Employee(string emplName, bool profitSharing, bool healthPlan, bool creditUnion) { propName = emplName; InProfitSharing = profitSharing; InHealthPlan = healthPlan; InCreditUnion = creditUnion; } private BitArray eflags = new BitArray(3); public bool InProfitSharing { set { eflags.Set(0, value); } get { return eflags.Get(0); } } public bool InHealthPlan { set { eflags.Set(1, value); } get { return eflags.Get(1); } } public bool InCreditUnion { set { eflags.Set(2, value); } get { return eflags.Get(2); } } private string propName; public string Name { get { return propName; } }
}
</source>