C#面向对象-集合类操作

集合类

1.ArrayList集合 

  • 概念:

 类似于数组,但是比数组的功能更强大,可以储存一切类型的数据,包括本身,而且可以自动开辟空间,但是需要手动添加命名空间。 

命名空间:using.System.Collections;
语法:ArrayList 名字 = new ArrayList();

注意:无论什么元素,添加到集合当中后都变成一个object类型。 可以使用里氏转换方法进行强转

  • ArrayList的方法:
Add()添加单个元素,也可以添加多个元素,比如数组;但是输出的是命名空间
AddRange()添加多个元素,比如数组,集合。
Clear()清空所有元素
Remove()删除单个元素,写谁就删谁

RemoveAt()

根据下标删除元素
Sort()升序排列
Reverse()反转
Insert(位置,插入的内容)在指定位置插入一个元素
InsertRange()在指定位置插入多个元素
RemoveRange(下标,范围)根据下标删除多个元素
Contains()判断是否包含指定的元素,返回bool类型
  • ArrayList长度的问题:

1.count:表示这个集合中实际包含元素的个数

2. capcity:表示这个集合中可以包含元素的个数

2.Hastable集合

  • 概念:

 Hastable类似于我们生活中的字典,通过拼音来找到你所要的字,而Hastable通过键值对来进行查找你所要找的值。所以,在Hastable中,都是通过键值对来进行操作的。 我们需要手写命名空间。

命名空间:using System.Collections
语法: Hastable 名称 = new Hastable();
  • Hastable特点:里面所具有的键是唯一的,而键对应的值是不唯一的,可以重复。 
  • Hastable的方法: 
Add(Keys,Value)用于添加键值对,键和值可以是任何类型
ContainsKey(键)判断集合中的键是否重复,返回一个bool类型
ContainsValue()判断集合中的值是否重复,返回一个bool类型
Clear(键)清空集合
Remove(键)移出集合中的键值对
//Add()的用法
Hastable ht = new Hastable();
ht.Add(1,"张三");//另外一种添加方式:ht[1]="张三";

//Clear()的用法
ht.Clear();//清空集合

//Remove()的用法
ht.Remove(1);//将键值为1的键值对移出

//ContainsKey()的用法
if(!ht.ContainsKey(2))
{
    ht.Add(2,"abc");
}
else
{
    Console.WriteLine("键值重复");
}

//ContainsValue()的用法与ContainsKey()类似
  • Hastable的输出 :

我们一般用的都是for循环来输出集合的值,但是在Hastable中我们不能使用for循环,否则输出的是Hastable的命名空间,我们可以用foreach来输出键值对。 

语言:
foreach(var item in 集合名字)//例如Hastable对象名字,可以选择Keys或者Value来输出键值还是值
{

}

例如:
Hastable ht = new Hastable();
ht.Add(1,"张胜男");
ht.Add(2,"abc");
ht.Add('a',5);
foreach(var item in ht.Keys)
{
    console.WriteLine("键:{0}=========值:{1}",item,ht[item]);
}
  • Hastable的长度: 

1.count:表示这个集合中实际包含元素的个数

2. capcity:表示这个集合中可以包含元素的个数

3.List泛型集合 

  • 概念: 

List泛型集合与ArrayList集合相似,但是List泛型集合里面的数据可以是特定的类型,例如int,char等等 

创建对象:List<类型> 名字 = new List<类型>()
  • 命名空间:自带,不用用户手动输入 
using System.Collsctions.Generic;
  • List泛型集合的方法:

与ArrayList集合一样。 

  • List泛型集合的长度: 与ArrayList一样。
  • List泛型集合可以转化成数组: 

 可以利用ToArray()转换成数组,也可以用数组转换成List泛型集合,利用ToList()。但是在转换时要注意,转换时要注意数据类型要一样。

List<int> listOne = new List<int>();
ListOne.AddRange(new int[] {1,2,3,4,5,6});
//List泛型集合转换成数组
int[] s = listOne.ToArray();

//数组转换成List
List<int> listTwo = s.ToList();

4.字典集合

  • 概念:  

与HasTable一样,也是通过键值对进行操作,但是字典中,键值对是由类型限制的,用户自己限制类型

语法:Dictionary<类型1,类型2> 名字 = new Dictionary<类型1,类型2>();
  • 字典的方法: 

与HasTable类似  

  • 字典的遍历: 

字典的遍历也跟HasTable表一样,都用foreach() ,但是字典的遍历可以更加炫酷,可以直接将键值对输出

语法:foreach(KeyValuePair<int,string> 名字 in 集合名字){  }

Dictronary<int,string> dic = new Dictronary<int,string>();
dic.Add(1,"张三");
dic.Add(2,"李四");
dic.Add(3,"王五");
foreach(KeyValuePair<int,string> kv in dic)
{
    Console.WriteLine("{0}----{1}",kv.Key,kv.Value);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值