C#: Array、 list<T>、Dictionary<T1,T2>

1、Array

Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array 类提供了各种用于数组的属性和方法。

int[] a = new int[]{1,45,87,12,56,89}

Array类及其使用方法
方法作用举例
Resize将数组长度更改为新大小a=Array.Resize(ref a,8);
Sort升序排序维数组中的元素Array.Sort(a);
Copy从当前的一维数组中复制指定元素到一个指定的一维数组的指定索引位置。索引由一个 32 位整数指定。

Array.Copy(a,5,b,0,3);

(原数组,索引5处开始截取,新数组,索引0处开始放,放3个)

Clear设置数组中某个范围的元素为初始值

Array.Clear(a,2,5);

(从索引2处开始后面5个元素)

Reverse逆转整个一维数组中元素的顺序Array.Reverse(a);
IndexOf搜索元素,返回首个匹配项索引Array.IndexOf(a,3);
LastIndexOf搜索元素,返回最后一个匹配项索引Array.LastIndexOf(a,3);
Find返回所有匹配元素int[] b = Array.Find(a,5)

2、 list<T>

list<int> list = new list<int>();

list<int> list2

list<T>类及其使用方法
方法作用举例
Add添加元素至末尾list.Add(10);
AddRange添加集合至末尾list.Add(new int[] {2,3,2,4});
Count返回集合元素个数int count= list.Count();
Remove删除指定元素list2=list.Remove(10);
RemoveAt删除指定索引元素list2=list.RemoveAt(3);
RemoveRange删除多个索引元素list2=list.RemoveAt(1,3);
RemoveAll删除满足条件的所有值可以应用于类类型(存放多种元素)的集合)

返回对象

list2=list.RemoveAll(a=a>5);

参数是泛型委托

Insert在指定索引位置插入元素list2=list.Insert(1,8);
InsertRange在指定索引位置插入集合list2=list.Insert(1,new int[] {2,3,2,4});
Find查找返回满足条件的第一个值(可以应用于类类型(存放多种元素)的集合)

int first = list.Find(a=a>5);

参数是泛型委托

FindAll查找返回满足条件的所有值(可以应用于类类型(存放多种元素)的集合)

返回对象

list2=list.FindAll(a=a>5);

参数是泛型委托

ToArray转数组int[] a = list.ToArray();
OrderBy按照list中的指定元素升序排序list2 = list.
Reverse反转集合list2 = list.Reverse()
Contains列表是否包含某个元素bool b = list.Contains(3);
Clear清空集合list.Clear();

OrderBy方法可以按照list中的指定元素升序排序,而ThenBy方可以附件排序按升序排序

降序用反转Reverse

  List<Student> ls = new List<Student>()
            {
                new Student(){StudentName="龙傲天",StudentCode="A001",ClassCode="001",ClassName="重点班",Grade=1,Bridthday=20152541},
                new Student(){StudentName="猪傲天",StudentCode="A002",ClassCode="001",ClassName="普通班",Grade=1,Bridthday=20150258},
                new Student(){StudentName="鼠傲天",StudentCode="A003",ClassCode="002",ClassName="普通班",Grade=1,Bridthday=20150454},
                new Student(){StudentName="狗傲天",StudentCode="A004",ClassCode="002",ClassName="普通班",Grade=1,Bridthday=20153369},
                new Student(){StudentName="猫傲天",StudentCode="A005",ClassCode="001",ClassName="重点班",Grade=1,Bridthday=20150214},             
            };
            //按list中指定元素升序排序(OrderBy)
            List<Student> ls1 = ls.OrderBy(a => a.Bridthday).ToList();
            //按list中指定元素升序排序(OrderBy)附件按升序排序(ThenBy)
            List<Student> ls2 = ls.OrderBy(a=>a.Bridthday).ThenBy(a=>a.ClassCode).ToList();
            //降序用反转
            ls2.Reverse()
            //这是类
            internal class Student
            {
            public string StudentName { get; set; }  //姓名
            public string StudentCode { get; set; }  //学生编号
            public string ClassCode { get; set; }  //班级编号
            public string ClassName { get; set; }  //班级名称
            public int Grade { get; set; }  //年级
            public int Bridthday { get; set; }  //出生日期
            }

3、Dictionary<T1,T2>

添加引用空间:using System.Collections.Generic;

本质:Hashtable的泛型

以键值对的方式存储,键不可以重复

通过键访问值:值=字典名[键]

字典
方法作用
Add添加元素(键值对)
Remove删除(只能通过键去删除)
ContainsKey查询键是否存在
ContainsValue查询值是否存在
Clear清除
 Dictionary<int,string> dic=new Dictionary<int,string>();  //定义
            dic.Add(1,"小明");  //添加
            dic.Add(2, "小花");
            dic.Add(3, "小猪");
            int count =dic.Count;  //查询个数
            if(dic.ContainsKey(3))  //是否存在“3”这个键
            {
                Console.WriteLine(dic[3]);  //打印值
            }
            bool b = dic.ContainsValue("小花");  //是否存在“小花”这个值

            foreach(var item in dic.Keys)  //遍历所有键
            {
                Console.WriteLine($"键:{item},值:{dic[item]}");
            }
            foreach(var item in dic.Values)  //遍历所有值
            {
                Console.WriteLine(item); 
            }
            foreach (KeyValuePair<int,string> item in dic)  //遍历键值对
            {
                Console.WriteLine($"键:{item.Key},值:{item.Value}");
            }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值