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

壹.

集合 在.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. Collection类相关总结

    集合类的框架如下: Collection(接口)    List(接口):允许重复.         ArrayList         Vector         LinkedList    Se ...

  2. sql拼音简写函数

    USE [HotelDB]GO /****** Object: UserDefinedFunction [dbo].[fn_GetPy] Script Date: 2016/1/4 13:29:13 ...

  3. 使用Javascript实现返回顶部功能。

    为了提高网站的浏览体验及友好度,相信大部分网站需要一个返回顶部的按钮,如果使用传统的a标记,再做一个div加上链接的话,非常麻烦,不仅每个页面都需要添加,而且不能实现非常智能的效果及简化维护时间. 下 ...

  4. 如何在R中加载”xlsx”包

    1.下载安装对应系统位数的JDK包(Java SE Development Kit) 2.完成后,安装rJava包-low-level r to Java Interface install.pack ...

  5. SQL补充

    TOP 子句TOP 子句用于规定要返回的记录的数目.对于拥有数千条记录的大型表来说,TOP 子句是非常有用的.注释:并非所有的数据库系统都支持 TOP 子句.SELECT TOP 2 * FROM P ...

  6. Android高仿微信(一)——如何消除启动时的白屏

    默认情况下,APP启动时会先把屏幕刷成白色,然后才绘制第一个Activity中的View,这两个步骤之间的延迟会造成启动后先看到白屏(时间大概为1秒左右).时间不长,但是我们也看到,一般的APP时不存 ...

  7. indexPathForCell returns nil since ios7

    -(UITableViewCell*)GetCellFromTableView:(UITableView*)tableView Sender:(id)sender { CGPoint pos = [s ...

  8. SDK 移动应用开发系统

    AppCan SDK 是一套跨平台移动应用开发系统,基于业内领先的Hybrid App 开发引擎,采用HTML5 标准作为开发语言,支持一次开发多平台适配.AppCan SDK 提供应用向导和界面向导 ...

  9. ubuntu 15.04 手动安装nginx 1.9.0

    平时工作也用nginx,不过用的时候都是已经配好的,只要简单改改参数就可以了.今天在自己的电脑上安装的时候发现没有想象的那么顺利. 纸上得来终觉浅,绝知此事要躬行. 正题: 1.到nginx下载页面获 ...

  10. IE6对png图片的处理

    在学习phpcms系统搜索模块的时候,发现下面这段代码: <!--[if IE 6]> <script type="text/javascript" src=&q ...