c#语言集合分析
集合的赋值:
double fenshu = 0;
al.Add(fenshu=double.Parse (Console .ReadLine ())); //如果是存数字,将来要比较大小,需要再添加的时候先转换为数值类型再添加到集合里面,否则,会当作字符串的编码去比较大小,会出错!
(也可以用 .Add(); 进行赋值 如:al.Add(2); //括号内是数据。第一个数据的索引号默认是0,后面的类推)
在集合中插入数据:
al.insert( , ); //逗号前面的是索引号,逗号后面的是数据(当集合中有三个数据,插入的索引号为1时,则原为1索引号的数据将为2,后面的依次往后退一位)
移除集合中的数据:
al.Remove();//括号内填的是集合中要移除的数据(在移除中若集合中有两个重复的数 .Remove() 只移除第一次出现的数)
al.RemoveAt();//括号内填的是集合中要移除的数据的索引号
.count;//查看集合的长度,返回int型
集合中的排序: .Sort();//这是升序排序,降序排序的话要在升序排序方法后用翻转(翻转——— .Reverse();)
在集合中求元素的索引号: (一定要注意数据类型是否匹配。如果返回值是-1,那么是没有找到这个元素的索引号)
清空集合: .Clear();
获取集合内元素的个数:
Console.WriteLine(at.Count);//输出集合的个数
复制集合中的元素数据,装入新的集合当中:
ArrayList xal = new ArrayList();
xal = (ArrayList)al.Clone();
判断一个集合里面是不是包含这个元素数据返回bool值:
bool b = al.Contains();//括号内为要查找是否集合包含的元素
—————特殊集合:Stack、Queue、哈希表(Hashtable)
Stack 堆的意思,先进后出,后进先出(堆没有索引)
1·构建 Stack s=new.Stack();
2·赋值:s.Push(1); //将数据推入堆中
3·输出:Console.WriteLine(s.Pop());
4·清空集合: .clear();
5· string tanchu = s.Peek().ToString();//只获取最后进去的那个数值,不移除
string tanchu = s.Pop().ToString();//Pop是弹出并移除最后进去的那个元素
6· Stack fuzhi = (Stack)s.Clone();//赋值集合
7·Console.WriteLine(s.Count);//获取集合内元素的个数
Queue先进先出,后进后出
1·构建:Queue q = new Queue();
2·int chu = int.Parse(q.Dequeue ().ToString ());//获取第一个进去的元素,并从集合中移除
3·int zhi = int.Parse(q.Peek ().ToString ());//读取第一个进去的元素,不移除
4·bool d = q.Contains(5);//看集合中是否包含括号中的元素,返回bool值
哈希表(Hashtable) 先进后出,后进先出 一个位置包含两个值( , )前面是索引后面是元素
1·构建 Hashtable ht = new Hashtable();
2· ht.Add(0,"aa"); // 向哈希表中添加键合值
3·ht.Remove(4); //按照括号内的Keys值移除
4·Console.WriteLine(ht.Contains (4));//判断是否包含某个键
输出:
foreach (int i in ht.Keys) //Keys表示索引
{
Console.WriteLine(i); //先进后出,后进先出
}
foreach (int i in ht..Values)//.Values表示元素
{
Console.WriteLine(i); //先进后出,后进先出
}
如果要同时输出索引和元素呢?
则:
//利用枚举输出索引号和元素
IDictionaryEnumerator ide = ht.GetEnumerator();
while(ide.MoveNext ())
{
Console.WriteLine(ide.Key +" "+ide.Value );
}
将哈希表转换成Arraylist
ArrayList al = new ArrayList();
foreach (string j in ht.Values ) //Values表示哈希表中的元素
{
al.Add(j);
}
c#语言集合分析的更多相关文章
- R语言︱集合运算——小而美法则
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 集合运算的一般规则如下: union(x ...
- 【转】对 Rust 语言的分析
对 Rust 语言的分析 Rust 是一门最近比较热的语言,有很多人问过我对 Rust 的看法.由于我本人是一个语言专家,实现过几乎所有的语言特性,所以我不认为任何一种语言是新的.任何“新语言”对我来 ...
- Java集合分析
Java集合分析 前言 从开始接触Java的时候, 就在强调的一个重要版块, 集合. 终于能够开始对它的源码进行分析, 理解, 如果不懂得背后的思想, 那么读懂代码, 也仅仅是读懂了 if else ...
- R语言︱情感分析—词典型代码实践(最基础)(一)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:词典型情感分析对词典要求极高,词典中 ...
- C语言内存分析
C语言内存分析 一.进制 概念:进制是一种计数方式,是数值的表现形式 4种主要的进制: ①. 十进制:0~9 ②. 二进制:0和1 ③. 八进制:0~7 ④. 十六进制:0~9+a b c d e f ...
- iOS学习之Object-C语言集合
一.数组类 1.C语言数组的特点:数组是一个有序的集合,用来存储相同数据类型的元素,通过下标访问数组中的元素,下标从0开始. 2.OC中的数组只能存储对象类型(必须是NSObjec ...
- java集合分析(转载)
参考文章:浅谈Java中的Set.List.Map的区别 Java 7 Collections详解 java中集合分为三类: Set(集) List(列表) Map(映射) Set和List继承自Co ...
- R语言︱情感分析—基于监督算法R语言实现(二)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:本文大多内容来自未出版的<数据 ...
- R语言集合操作
熟练运用R语言的集合操作在很多时候可以省去for循环,从而提升数据处理效率.废话不多说,集合操作相对简单,贴一段代码就懂了! > A<-: > A [] > B<-,,) ...
随机推荐
- 【转存】Vue组件选项props
原帖地址 前面的话 组件接受的选项大部分与Vue实例一样,而选项props是组件中非常重要的一个选项.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 ...
- Quest for sane signals in Qt - step 1 (hand coding a Q_OBJECT)
探索qt的信号ref: http://crazyeddiecpp.blogspot.hk/2011/01/quest-for-sane-signals-in-qt-step-1.html If it ...
- TypeScript 之 函数
https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Functions.html 为函数定义类型 为函数添加类型: fu ...
- python连接Mongo数据库
python连接Mongo数据库主要采用pymongo连接,一般情况分为两种连接方式,一种通过指定端口和地址直接连接,另一种通过uri的格式连接 1.通过指定端口和地址连接Mongo conn = M ...
- [转] Centos7 yum lock,无法上网问题,以及安装python3.5
centos 7 无法上网问题 转自 http://www.cnblogs.com/katios/p/5660336.html 博主本着学无止境的精神在虚拟机上安装了一个centos7 来敲敲命令行. ...
- C# 中HttpClient的使用中同步异步问题
项目中遇到了这样的问题: 第一次 :HttpResponseMessage response = await httpClient.PostAsync(url, null);发送了一个post异步请求 ...
- switch case语句重点概况
witch-case语句格式如下: switch(变量){ case 变量值1: //; break; case 变量值2: //...; break; ... case default: //... ...
- OpenGL学习记录
1.QT OpenGL工程建立: http://www.cnblogs.com/tornadomeet/archive/2012/08/22/2651574.html 2.Qt自定义界面类并提升(提升 ...
- vue中的计算属性中的坑,
new Vue({ el: '#app', data: { msg:'121', val: '', }, computed:{ val:function(){ return 3; } }, }); 这 ...
- 分布式消息队列RocketMQ--事务消息--解决分布式事务
说到分布式事务,就会谈到那个经典的”账号转账”问题:2个账号,分布处于2个不同的DB,或者说2个不同的子系统里面,A要扣钱,B要加钱,如何保证原子性? 一般的思路都是通过消息中间件来实现“最终一致性” ...