集合里面 打印  出来时 要把 集合内的格式转化为其他格式!

壹.

集合 在.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#集合及特殊字符的更多相关文章

  1. Python之words count

    要求: 对文件单词进行统计,不区分大小写,并显示单词重复最多的十个单词 思路: 利用字典key,value的特性存单词及其重复的次数 每行进行特殊字符的处理,分离出被特殊字符包含的单词 def mak ...

  2. [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. java中的特殊字符集合

    JAVA中转义字符: 1.八进制转义序列:\ + 1到3位5数字:范围'\000'~'\377'       \0:空字符 2.Unicode转义字符:\u + 四个 十六进制数字:0~65535   ...

  4. 过滤sql特殊字符方法集合

    /// <summary>     /// 过滤不安全的字符串    /// </summary>     /// <param name="Str" ...

  5. C# 过滤sql特殊字符方法集合

    1./// <summary>    /// 过滤不安全的字符串    /// </summary>    /// <param name="Str" ...

  6. lua 字符串 正则表达式 转义 特殊字符

    string.gsub 函数有三个参数:目标串,模式串,替换串.基本作用是用来查找匹配模式的串,并将使用替换串其替换掉: s = string.gsub("Lua is good" ...

  7. Python黑帽编程2.3 字符串、列表、元组、字典和集合

    Python黑帽编程2.3  字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询 ...

  8. C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  9. 【Linux学习】Vi 操作命令集合

    Vi 操作命令集合 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文 ...

随机推荐

  1. GOF业务场景的设计模式-----责任链模式

    定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止. 首先来看一段代码: public void tes ...

  2. Tomcat 部署详解

    前篇大概讲过了tomcat的发布和部署,以及测试. 本篇详细介绍下tomcat的部署相关的内容,本篇主要内容: 1 介绍下部署相关的内容,需要安装的文件以及上下文描述符 2 静态部署——在tomcat ...

  3. bzoj1179 [Apio2009]Atm

    Description Input 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路的起点和终点的路口 ...

  4. PHP文件的上传与下载

    文件上传: 1.单个与多个文件上传 2.上传表单的属性设置 3.PHP配置文件中相关文件上传的设置 4.PHP处理上传的文件数据 php.ini配置: file_uploads = on; 默认on ...

  5. 【C语言入门教程】2.3 整型数据

    没有小数位或指数的数据类型被称为整型数据,根据使用方法的分类,整型数据可分为整型常量和整型变量.根据定义或显示的数制分类,可分为十进制.八进制和十六进制. 2.3.1 整型常量 整型常量是在运算中不可 ...

  6. 《深入浅出WPF》笔记三

    1.Field:字段,封装在类中的变量. Method:方法,封装在类中的函数. 成员:类中的字段和方法,可分为静态成员和非静态成员. 静态字段在内存中只有一份拷贝. 非静态字段是每个实例拥有一个拷贝 ...

  7. 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 ...

  8. web安全及防护

    本文将对web方面的安全问题以及相应的防护方法进行一个简单的介绍. SQL注入(SQL Injection) 原理:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺 ...

  9. cocos2dx 3.7中 AppDelegate.h的class TestController;这种写法的具体意思不太明白,只能猜是类似于外部定义的东西。

    cocos2dx 3.7中 AppDelegate.h的class TestController;这种写法的具体意思不太明白,只能猜是类似于外部定义的东西.

  10. python入门教程链接

    python安装 选择 2.7及以上版本 linux: 一般都自带 windows: https://www.python.org/downloads/windows/ mac os: https:/ ...