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 :打开文 ...
随机推荐
- GOF业务场景的设计模式-----责任链模式
定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止. 首先来看一段代码: public void tes ...
- Tomcat 部署详解
前篇大概讲过了tomcat的发布和部署,以及测试. 本篇详细介绍下tomcat的部署相关的内容,本篇主要内容: 1 介绍下部署相关的内容,需要安装的文件以及上下文描述符 2 静态部署——在tomcat ...
- bzoj1179 [Apio2009]Atm
Description Input 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路的起点和终点的路口 ...
- PHP文件的上传与下载
文件上传: 1.单个与多个文件上传 2.上传表单的属性设置 3.PHP配置文件中相关文件上传的设置 4.PHP处理上传的文件数据 php.ini配置: file_uploads = on; 默认on ...
- 【C语言入门教程】2.3 整型数据
没有小数位或指数的数据类型被称为整型数据,根据使用方法的分类,整型数据可分为整型常量和整型变量.根据定义或显示的数制分类,可分为十进制.八进制和十六进制. 2.3.1 整型常量 整型常量是在运算中不可 ...
- 《深入浅出WPF》笔记三
1.Field:字段,封装在类中的变量. Method:方法,封装在类中的函数. 成员:类中的字段和方法,可分为静态成员和非静态成员. 静态字段在内存中只有一份拷贝. 非静态字段是每个实例拥有一个拷贝 ...
- CentOS6系升级Python2.7版本
安装前准备 本实例以CentOS6.7为例 [root@E tools]# uname -r 2.6.32-431.23.3.el6.x86_64 [root@E tools]# uname -m x ...
- web安全及防护
本文将对web方面的安全问题以及相应的防护方法进行一个简单的介绍. SQL注入(SQL Injection) 原理:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺 ...
- cocos2dx 3.7中 AppDelegate.h的class TestController;这种写法的具体意思不太明白,只能猜是类似于外部定义的东西。
cocos2dx 3.7中 AppDelegate.h的class TestController;这种写法的具体意思不太明白,只能猜是类似于外部定义的东西.
- python入门教程链接
python安装 选择 2.7及以上版本 linux: 一般都自带 windows: https://www.python.org/downloads/windows/ mac os: https:/ ...