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 :打开文 ...
随机推荐
- Collection类相关总结
集合类的框架如下: Collection(接口) List(接口):允许重复. ArrayList Vector LinkedList Se ...
- sql拼音简写函数
USE [HotelDB]GO /****** Object: UserDefinedFunction [dbo].[fn_GetPy] Script Date: 2016/1/4 13:29:13 ...
- 使用Javascript实现返回顶部功能。
为了提高网站的浏览体验及友好度,相信大部分网站需要一个返回顶部的按钮,如果使用传统的a标记,再做一个div加上链接的话,非常麻烦,不仅每个页面都需要添加,而且不能实现非常智能的效果及简化维护时间. 下 ...
- 如何在R中加载”xlsx”包
1.下载安装对应系统位数的JDK包(Java SE Development Kit) 2.完成后,安装rJava包-low-level r to Java Interface install.pack ...
- SQL补充
TOP 子句TOP 子句用于规定要返回的记录的数目.对于拥有数千条记录的大型表来说,TOP 子句是非常有用的.注释:并非所有的数据库系统都支持 TOP 子句.SELECT TOP 2 * FROM P ...
- Android高仿微信(一)——如何消除启动时的白屏
默认情况下,APP启动时会先把屏幕刷成白色,然后才绘制第一个Activity中的View,这两个步骤之间的延迟会造成启动后先看到白屏(时间大概为1秒左右).时间不长,但是我们也看到,一般的APP时不存 ...
- indexPathForCell returns nil since ios7
-(UITableViewCell*)GetCellFromTableView:(UITableView*)tableView Sender:(id)sender { CGPoint pos = [s ...
- SDK 移动应用开发系统
AppCan SDK 是一套跨平台移动应用开发系统,基于业内领先的Hybrid App 开发引擎,采用HTML5 标准作为开发语言,支持一次开发多平台适配.AppCan SDK 提供应用向导和界面向导 ...
- ubuntu 15.04 手动安装nginx 1.9.0
平时工作也用nginx,不过用的时候都是已经配好的,只要简单改改参数就可以了.今天在自己的电脑上安装的时候发现没有想象的那么顺利. 纸上得来终觉浅,绝知此事要躬行. 正题: 1.到nginx下载页面获 ...
- IE6对png图片的处理
在学习phpcms系统搜索模块的时候,发现下面这段代码: <!--[if IE 6]> <script type="text/javascript" src=&q ...