Csharp进阶:泛型集合
来源:互联网 发布:淘宝付款怎么取消订单 编辑:程序博客网 时间:2024/06/10 11:29
泛型集合
List泛型集合
在C#中,提供了一个List泛型集合,该集合不仅具备ArrayList集合的功能,而且还可以保证List集合只能添加同类型元素,不会出现类型转换的问题
ArrayList list = new ArrayList();
Add方法的参数类型是object类型在传递参数的时候整型1会转化成object类型 这样属于装箱操作
list.Add(1);
如果实现 list[0] + 2 得到正确的结果 要将list[0]转化成int类型 也就是说要进行拆箱操作
Console.WriteLine((int)list[0] + 2);
泛型结合在声明的时候已经确定了里面的元素类型,里面的传入的数据类型只能和声明时定义的类型保持一致。泛型能在编译时,提供强大的类型检查,减少数据类型之间的显示转化、装箱操作和运行时的类型检查。
List<string> list =newList<string>();
GetRange用来截取由下标X开始共Y个元素为一个新集合
List<int> newList = numList.GetRange(2, 3);
记录查找元素的数量
int count = 0;
while (newList.IndexOf(2) != -1)
{
index = newList.IndexOf(2);
count++;
***由于此步操作需要删除集合中的元素,所以通常复制一个新集合进行操作***
newList.RemoveAt(index);
}
Console.WriteLine(count);
Dictionary泛型集合
Hashtable集合中的键与值在默认情况下都是object类型,这使得用户在取值时不可避免地遇到类型转换的问题。为了解决这个问题,C#中提供了Dictionary泛型集合。该集合中的键与值都只能是一种类型。
Dictionary<string,string> dic =newDictionary<string,string>();
在一个字典中键是唯一的
在一个字典中不同的键可以对应相同的值
dic.Add("张杰","高飞");
dic.Add("刘欢","好汉歌");
dic.Add("周杰伦","青花瓷");
dic.Add("刘英","青花瓷");
ContainsKey判断是否包含特定的键
bool key =dic.ContainsKey("周杰伦");
ContainsValue判断是否包含特定的元素
bool value = dic.ContainsValue("好汉歌");
dic.Keys获取键的集合
KeyCollection keys = dic.Keys;
字典集合中对象的有效使用案例
Dictionary<string,Book> books =newDictionary<string,Book>(); books.Add("0000000",newBook("C#编程之道",56,"王垚"));
books.Add("0000001", new Book("C#从入门到精通", 98,"YY"));
books.Add("0000002", new Book("C#从入门到放弃", 2,"亚东"));
对整个字典集合的遍历的两种方法
foreach (var itemin dic)
{
Console.WriteLine(item);
}
foreach (KeyValuePair<string,string> itemin dic)
{
Console.WriteLine(item.Key);
}
SortedDictionary表示对字典集合根据键进行排序
SortedDictionary<string,string> dic =newSortedDictionary<string,string>();
HashSet泛型集合
HashSet的特点是集合中的元素不会相同,此特性在生成1-100的随机数案例中得以有效体现,根据集合特性,100个数直接随机输出。
HashSet<int> hs =newHashSet<int>();
Random random = new Random();
while (hs.Count < 100)
{
hs.Add(random.Next(1, 101));
}
foreach (var itemin hs)
{
Console.WriteLine(item);
}
- Csharp进阶:泛型集合
- Csharp进阶:非泛型集合
- Csharp中的数组、集合、泛型集合
- Csharp进阶:StringBuilder
- Csharp进阶:程序异常
- Csharp进阶:字符串常用方法
- Csharp进阶:栈和队列
- Csharp进阶:DataTimeDemo,MathDemo,path类
- Csharp进阶:文件流之File类
- Csharp进阶:文件流之FileInfo类
- 集合进阶
- csharp
- Csharp
- JAVA进阶-集合(1)
- 集合进阶2
- MongoDB 进阶(命令\固定集合)
- MongoDB 进阶(命令\固定集合)
- C#进阶3_集合
- Linux 系统目录结构
- Csharp进阶:StringBuilder
- 数据结构-图的遍历
- 新手上路之js js提交表单的几种形式笔记
- 使用jTessBoxEditorFX训练Tesseract-OCR 简单教程
- Csharp进阶:泛型集合
- js异步以及事件轮询机制
- Event事件
- jQuery学习笔记5
- UIAlertController设置行间距 字体颜色
- left join 连表时,on后多条件无效问题
- OpenLayers 加载静态图片
- jQuery学习笔记6
- 关于升级swif3.0的一些东西(续)