C#集合接口与BitArray

一.C#中集合的接口:ICollection

集合接口的初始化对象方式:

ICollection<Data type> mycollect=new Collection< Data type >();

现在先来看一个整数类型集合的接口

using System.Collections.ObjectMode

//必须要有这个引用
ICollection<int> myCollection = new Collection<int>();

myCollection.Add(100);//增加元素

myCollection.Add(22);

myCollection.Add(30);

foreach (int x in myCollection)

Console.WriteLine(x); //输出元素

Console.WriteLine("集合中元素的个数{0}", myCollection.Count);

myCollection.Add(222);

myCollection.Remove(22);//删除元素

Console.WriteLine("集合中元素的个数{0}", myCollection.Count);

Console.WriteLine(myCollection.Contains(22));//判断集合中是否有这个元素


图片1

判读集合中是否存在某个元素:myCollection.Contains(x);有的话返回1,否则返回0;

将集合中的元素复制到一个同样大小的数组中:

int[] myArray = new int[myCollection.Count];

myCollection.CopyTo(myArray, 0);//从myCollection的第一个元素开始


int[] myArray = new int[myCollection.Count];
 myCollection.CopyTo(myArray, 0);

//从myCollection的第一个元素开始

Console.WriteLine("xia现在比较下两个对象中元素");

for (int i = 0; i < myCollection.Count; i++)

{

Console.Write("in myArray {0},",myArray[i]);

}

foreach (int x in myCollection)

Console.WriteLine("in mycollection{0}",x);



图片2

只要按照上面介绍的方法就可以构造其他类型的泛型集合。

现在演示下另一类型的泛型集合:


ICollection<string> another = new Collection<string>();

//构造一个字符串型的集合

another.Add("the ");

another.Add("people's ");

another.Add("republic ");

another.Add("china ");

foreach(string str in another)

    Console.Write(str);


该对象的输出结果是:


图片3

二.BitArray 

BitArray类是一个比特数组,数组的大小在创建对象的时候已经确定,每个数据元素只能表示一个比特,元素的值只能是1与0,其中用true表示1,用false表示0,当用其他数据类型的元素初始化该对象时,那么每个元素将占用该类型在内存中存储长度的数组空间,下表中式该类提供的特殊方法:


方法名字


方法的功能


and


BitArray中的元素执行按位“与”运算


or


按位“或”运算


not


取反运算


xor


异或运算


get/set


获取或设计特定位置处的位设置为指定值


setall


将BitArray中的所有位设置为指定值

 

初始化一个BitArray类


BitArray myBitArray = new BitArray(4);

myBitArray[0] = false;

myBitArray[1] = true;

myBitArray[2] = true;

myBitArray[3] = false;

DisplayBitArray("myBitArray", myBitArray);

Console.WriteLine("after not()之后");

myBitArray.Not();

DisplayBitArray("myBitArray", myBitArray);


图片4

当然这里还定义了一个方法专门用来输出:

public static void DisplayBitArray(string arrayListName, BitArray myBitArray)

{ for (int i = 0; i < myBitArray.Count; i++)

{

    Console.WriteLine(arrayListName + "[" + i + "] = " + myBitArray[i]);

}

}

时间: 2024-08-28 20:00:28

C#集合接口与BitArray的相关文章

初学者必读:Java集合接口综述

初学|集合|接口 集合总是需要迭代的,我们确实需要探察集合中的每一个元素,所以集合接口都无一例外的继承了Iterable<T> 接口 ,而该接口的唯一方法 : Iterator<T> iterator()           返回一个在一组 T 类型的元素上进行迭代的迭代器. 可以返回一个所有集合接口都继承了的Iteraor接口,如此集合框架的所有子类都可以迭代显示其元素! 例如下:集合的根接口Collection继承了Iterator接口: public interface Co

泛型--集合接口

9.4 集合接口 .NET Framework为集合的枚举和对比提供了两组标准接口:传统的(非类型安全)和新的泛型类型安全集合.本书只聚焦于新的,类型安全的集合接口,因为它更优越. 您可以声明一些指定了类型的ICollection来取代实际类型(如int或string),以用于接口声明中的泛型类型(<T>). C++程序员需要注意:C#泛型和C++中的模板在语法和用法上都很相似.但是,因为泛型在运行期为其指定类型进行扩展,JIT编译器可以为它们的不同的实例共享一段代码,从而使得在使用C++模板

Java集合接口综述

集合总是需要迭代的,我们确实需要探察集合中的每一个元素,所以集合接口都无一例外的继承了Iterable<T>接口 ,而该接口的唯一方法 : Iterator<T> iterator() 返回一个在一组 T 类型的元素上进行迭代的迭代器. 可以返回一个所有集合接口都继承了的Iteraor接口,如此集合框架的所有子类都可以迭代显示其元素! 例如下:集合的根接口Collection继承了Iterator接口: public interface Collection<E> ex

C# 标准查询运算符的集合接口详解教程

支持标准查询运算符的集合接口 System.Linq.Enumeralbe类提供的一些常用的API 来执行集合处理1.匿名类型2.隐匿类型的局部变量3.集合初始化器4.集合5.标准查询运算符 本章主要讨论泛型集合接口.非泛型的集合类,待查. 一.匿名类型和隐式类型的局部变量声明 C#3.0增强.1.匿名类型一种特殊的数据类型,它最终是由编译器声明的,而非通过已定义好的类来声明的.和匿名函数相似,当编译器看到一个匿名类型时,会自动执行一些后台操作,生成必要的代码,允许像显式声明的那样使用它. cl

如何用 Newtonsoft.Json 正确解析属性为“接口集合&amp;amp;lt;接口&amp;amp;gt;”的JSON字符串

问题描述 如何用Newtonsoft.Json正确解析属性为"接口集合<接口>"的字符串我想要能够正确解析CC类,也就是其属性是IList<I>,都是接口类型的.请注意,DD类中可能还继续包含更深层次的集合接口.比如DD还包含D3是IList<IDD4>.//CCocc=JsonConvert.DeserializeObject<CC>(s);//提示错误:Errorsettingvalueto'C3'on'ConsoleApplicat

关于.NET的集合总结_实用技巧

        集合是一些有共同特征的独立数据项组成的,通过集合,我们可以可以使用相同的调用代码来处理一个集合的所有元素,而不用单独处理每一个单独的项..net的集合诸如(System.Array类以及 System.Collections命名空间)数组.列表.队列.堆栈.哈希表.字典甚至(System.Data下)DataSet.DataTable,还有2.0中加入的集合的泛型版本(System.Collections.Generic和 System.Collections.ObjectMod

《java与模式》笔记-----抽象类和接口

笔记 抽象类和接口 什么是接口:接口就是一些方法特征的集合------接口是对抽象的抽象. 什么是抽象类:抽象类对某具体类型的部分实现------抽象类是对具体的抽象. 方法特征包括:方法的名字.参数的数目.参数的类型.不包括:返回类型.参数名字.和抛出的异常. 接口是类型转换的前提.是动态调用的保证.实现某一接口就完成了类型的转换(多重继承):动态调用只关心类型,不关心具体类.          -------------------------------------------------

.NET 2.0 基础类库中的范型——范型集合

集合 范型集合毫无疑问,范型最典型的应用莫过于范型集合了.在 .NET 2.0 中提供了已有集合类和接口的范型版本,它们位于 System.Collections.Generic 命名空间中. .NET 2.0 中新的范型集合类并不是简单的在已有非范型集合类的设计上多加了个范型参数 T 而已.新的范型集合类的设计充分吸收了已有设计中的合理之处并摒弃了一些不甚合理之处,同时引入了新的针对范型的设计.所以,新的范型类和接口的设计应该更加合理和有效,不过 .NET 程序员则需要花些时间学习新的设计并了

Guava 集合框架

在本系列中我们首先来学习一些Guava的集合框架,也就是这个package:com.google.common.collect 在这个包下面有一些通用的集合接口和一些相关的类.   集合类型: BiMap    它是java.util.Map接口的一个扩展,它的特性就是它的key和value都是唯一的并且是一一对应的.也就是说"可逆".简单的描述就是根据key能拿到唯一的value,根据value也能够拿到唯一的key. Multiset     它是Collection的扩展,就如同