C#集合及特殊字符
集合里面 打印 出来时 要把 集合内的格式转化为其他格式!
壹.
集合 在.add之前 为空 数组 同样 添加元素之前 为 空(下一章超市购物例题具体体现)
1.System Collections命名空间包含接口和类,这些接口和类定义各种对象的集合;
2.集合与数组的区别;数组是连续的,同一类型的数据的一块区域,而集合是可以不连续的,多种数据类型的;
3.Arraylist实现了与 Ilist ICollection IEnumberable 接口
4.Arraylist是具体类,array是抽象类;
5.数组必须在实例化时指定元素数量,该数量一旦确定就不可更改,而ArrayList 当实例化一个arraylist 实例时可以不指定几何元素数(有默认的初始容量),当然你可以指定初始容量;
6.获取数组的元素数时使用length属性,而获取arraylist集合的元素数时使用Count属性;
5.数组可以有多维,而arraylist只能是一维。
贰:例题:
1.手机号抽奖 集合中存放字符串
ArrayList TL = new ArrayList();--------与array区别 可以不指定元素数
for (; ; )
{
Console.WriteLine("输入手机号");
string a = Console.ReadLine();
if (a == "完成")
{
break;
}
TL.Add(a); //每个索引对应 一个字符串 把字符串放在 数组里面!
} Console.WriteLine("回车键进行抽奖");
Console.ReadLine();
Console.Clear(); Random r = new Random(); for (int j = ; j < ; j += )
{
int c = r.Next(TL.Count); Console.Clear();
Console.WriteLine(TL[c]); System.Threading.Thread.Sleep(); // ----------每隔100毫秒暂停一次
}
例题1
2.按着语文成绩排序 集合中存放 整数 以单 个的数 或者 字符串的形式存入集合 去的时候和 数组取差别不大 就是多了一步转化;object转为string再转其他;注意与后面结构体的区别
Console.WriteLine("输入班级人数");
int n = int.Parse(Console.ReadLine()); ArrayList q = new ArrayList();
for (int i = ; i < n; i++)
{
Console.WriteLine("输入第{0}个人的姓名:", i + );
q.Add(Console.ReadLine());
Console.WriteLine("输入第{0}个人的语文成绩:", i + );
q.Add(Console.ReadLine());
Console.WriteLine("输入第{0}个人的数学成绩:", i + );
q.Add(Console.ReadLine());
Console.WriteLine("输入第{0}个人的英语成绩:", i + );
q.Add(Console.ReadLine());
Console.WriteLine();
}
Console.Clear();
Console.WriteLine("按照语文成绩进行排序");
Console.ReadLine();
for (int i = ; i < * n - ; i += )---------------------集合一维
{
for (int j = i + ; j < * n; j += )
{
if (int.Parse(q[i].ToString()) < int.Parse(q[j].ToString()))//object转化为字符串在转化为其他(因为添加的字符串 添加后默认object)
{
object a;
a = q[i - ];
q[i - ] = q[j - ];
q[j - ] = a; object b;
b = q[i + ];
q[i + ] = q[j + ];
q[j + ] = b; object c;
c = q[i + ];
q[i + ] = q[j + ];
q[j + ] = c; } }
} foreach (object aa in q)
{
Console.WriteLine(aa);
} Console.ReadLine();
用集合的方法(集合只能是一维的)
3.
初始化的 同类数据没有任何关系 【初始化的位置不同 】
将数组存入集合,再从集合取出打印;
班级人数, 姓名,性别,成绩。
Console.Write("输入班级人数");
int a = int.Parse(Console.ReadLine());
ArrayList zong = new ArrayList(); for (int i = ; i < a; i++)
{
string[] ren = new string[];
Console.Write("输入第{0}个人的姓名:", (i + ));
ren[] = Console.ReadLine();
Console.Write("输入第{0}个人的性别:", (i + ));
ren[] = Console.ReadLine();
Console.Write("输入第{0}个人的成绩:", (i + ));
ren[] = Console.ReadLine();
zong.Add(ren); //集合输入元素 输入数组类型
}
Console.Write("输入完毕:请按空格键打印");
Console.ReadLine();
for (int i = ; i < zong.Count; i++)
{
string[] aaa = (String[])zong[i]; //集合 提取元素 提取 数组类型
Console.WriteLine(aaa[]+" "+aaa[]+" "+aaa[]);
}
集合中存放数组 提取数组
4.Arraylist小知识点
实例化 初始化
ArrayList al = new ArrayList();-------不需指明元素容量
//add方法才是真的添加
al.Add();
al.Add();
al.Add();
al.Add();
al.Add(); //在某个索引号上插入某个元素
al.Insert(,"Hello");
个数
Console.WriteLine(al.Count);
al[]这种赋值方式,仅仅适用于修改
al[] = ; 清空集合
al.Clear(); 克隆集合
ArrayList al1 = (ArrayList)al.Clone(); 判断是否包含某个元素
bool a = al.Contains();
Console.WriteLine(a); 获取第一次出现该元素的索引号
Console.WriteLine(al.IndexOf()); 获取最后一次出现该元素的索引号
Console.WriteLine(al.LastIndexOf()); 移除第一个匹配元素
al.Remove(); 移除某个索引位置上的元素
al.RemoveAt(); Console.WriteLine(al[]);
数组的定义:数据类型 总长度 遍历集合
foreach(int aa in al)
{
Console.WriteLine(aa);
}
Console.WriteLine("--------------------------------------------");
//排序 升序
al.Sort();
//遍历集合
foreach (int aa in al)
{
Console.WriteLine(aa);
}
Console.WriteLine("--------------------------------------------");
//排为降序
//翻转集合
al.Reverse();
//遍历集合
foreach (int aa in al)
{
Console.WriteLine(aa);
} 在有不同数据类型的时候需要遍历集合
foreach(object aa in al)
{
Console.WriteLine(aa);
} object 所有数据类型的基类
int a = ;
object aa = a;
aa = "string类型";
aa = true;
aa = DateTime.Parse("2008/8/8");
aa = al; System.Threading.Thread.Sleep();
小知识点
5.特殊集合
. Stack 干草堆集合 栈集合
一个一个赋值 一个一个取值
先进后出
实例化 初始化
Stack st = new Stack();
//添加元素
st.Push();
st.Push();
st.Push();
st.Push();
st.Push();
//个数
//Console.WriteLine(st.Count); //只要使用一次pop方法,就会从最后一个元素开始排除 弹出
//Console.WriteLine(st.Pop());
//只想查看不弹出
//Console.WriteLine(st.Peek()); //遍历集合
foreach(int aa in st)
{
Console.WriteLine(aa);
} //Console.WriteLine(st.Count); queue队列集合
先进先出
实例化 初始化
Queue que = new Queue();
//添加元素
que.Enqueue();
que.Enqueue();
que.Enqueue();
que.Enqueue();
que.Enqueue();
//移除一个元素 从头开始
que.Dequeue(); //个数
//Console.WriteLine(que.Count); //遍历集合
foreach(int aa in que)
{
Console.WriteLine(aa);
} HashTable 哈希表集合
先进后出 一个一个赋值,但是只能一起取值
实例化 初始化
Hashtable ht = new Hashtable();
添加元素
ht.Add(, "张三");
ht.Add(, "李四");
ht.Add(, "王五");
ht.Add(, "赵六");
ht.Add(, "冯七");
ht.Add(, "钱八"); 读取
foreach (object aa in ht.Keys)//单纯的存储key的集合
{
Console.WriteLine(aa);
}
foreach (string bb in ht.Values)
{
Console.WriteLine(bb);
} 使用枚举类型进行读取,排列成表格
IDictionaryEnumerator ide = ht.GetEnumerator();
while(ide.MoveNext())
{
Console.WriteLine(ide.Key+"\t"+ide.Value);
}
特殊集合知识点
C#集合及特殊字符的更多相关文章
- Python之words count
要求: 对文件单词进行统计,不区分大小写,并显示单词重复最多的十个单词 思路: 利用字典key,value的特性存单词及其重复的次数 每行进行特殊字符的处理,分离出被特殊字符包含的单词 def mak ...
- [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- java中的特殊字符集合
JAVA中转义字符: 1.八进制转义序列:\ + 1到3位5数字:范围'\000'~'\377' \0:空字符 2.Unicode转义字符:\u + 四个 十六进制数字:0~65535 ...
- 过滤sql特殊字符方法集合
/// <summary> /// 过滤不安全的字符串 /// </summary> /// <param name="Str" ...
- C# 过滤sql特殊字符方法集合
1./// <summary> /// 过滤不安全的字符串 /// </summary> /// <param name="Str" ...
- lua 字符串 正则表达式 转义 特殊字符
string.gsub 函数有三个参数:目标串,模式串,替换串.基本作用是用来查找匹配模式的串,并将使用替换串其替换掉: s = string.gsub("Lua is good" ...
- Python黑帽编程2.3 字符串、列表、元组、字典和集合
Python黑帽编程2.3 字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询 ...
- C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。
C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...
- 【Linux学习】Vi 操作命令集合
Vi 操作命令集合 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文 ...
随机推荐
- PostgreSQL中的时间操作总结
取当前日期的函数: (1) 取当前时间:select now() (2) 取当前时间的日期: select current_date (3) 取当前具体时间(不含日 ...
- 低版本IE浏览器 input元素出现叉叉的情况
都说是IE10之上的浏览器才有这个问题,恰巧我IE10之上都没有问题,反而是低版本的浏览器出现了这个问题.作为一个凭证,我先放一张图片在这里面. 之前无意中解决过这个问题,如今复现确实是没有解决,网上 ...
- sql中的常见的全局变量
select APP_NAME ( ) as w --当前会话的应用程序 select @@IDENTITY --返回最后插入的标识值 select USER_NAME() --返回用户数据库用户名 ...
- 跨域攻击xss
要完全防止跨域攻击是很难的,对于有些站点是直接 拦截跨域的访问,在你从本站点跳转到其他站点时提醒,这算是一种手段吧. 而跨域攻击的发起就是在代码(包括html,css,js或是后台代码,数据库数据)里 ...
- InnoDB锁机制分析
InnoDB锁机制常常困扰大家,不同的条件下往往表现出不同的锁竞争,在实际工作中经常要分析各种锁超时.死锁的问题.本文通过不同条件下的实验,利用InnoDB系统给出的各种信息,分析了锁的工作机制.通过 ...
- c语言小知识点
大一时学c语言,总结的一些自己感觉很零碎且容易忘的知识点,不对之处请指正 1.字符串不管中间是否有数值0,结尾一定有数值02.浮点类型的变量存储并不精确3.printf格式串自动右对齐,加负号左对齐4 ...
- 淘宝(阿里百川)手机客户端开发日记第一篇 android 主框架搭建(一)
android 主框架搭建(一) 1.开发环境:Android Studio 相继点击下一步,直接项目建立完毕(如下图) 图片看的效果如果很小,请放大您的浏览器显示百分比 转载请注明http://w ...
- BZOJ4519——[cqoi2016]不同的最小割
0.题意:求两点之间的最小割的不同的总量 1.分析:裸的分治+最小割,也叫最小割树或GH树,最后用set搞一下就好 #include <set> #include <queue> ...
- Tomcat7优化配置
导读 Tomcat在使用的过程中会遇到很多报错,有些是程序的报错,但还有一部分是tomcat本身的报错,我们可以通过优化tomcat的初始配置来提高tomcat的性能.Tomcat的优化主要体现在两方 ...
- [BZOJ3991][SDOI2015]寻宝游戏
[BZOJ3991][SDOI2015]寻宝游戏 试题描述 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有且仅有一条路径可达.游戏开始时,玩家可以任意选择 ...