C#知识点 泛型 泛型方法 ArrayList 动态数组 列表list 字典

一、泛型

泛型:通过泛型可以实现在同一份代码上操作多种数据类型的逻辑,将类和类中的成员定义为泛型,在使用时再指明类型,从而实现对不同类型的操作

定义一个泛型类:
注意:类定义为泛型时,这个泛型可以在类中的任意成员中使用

internal class Class2<T>  //<type>的缩写,类型是不确定的,可以当做任何类型,当使用时必须指明类型
{
    //泛型数据
    public T a;
    public T b;
    public Class2(T a, T b)
    {
        this.a = a;
        this.b = b;
        
    }
    public T Add()
    {
        //dynamic 动态类型  可以储存任意类型的值在动态类型变量中,这些变量的类型在运行时发生
        dynamic a=this.a;
        dynamic b=this.b;
        return a + b;
    }
}

调用泛型类(使用时需要声明类型):

Class2<int> c2 = new Class2<int>(10,20);
Console.WriteLine(c2.Add());

二、泛型方法

泛型方法 :方法名后面加上

public static void Add<T>(T a,T b)
{
    //要让检查在指定类型之后 ,需使用动态类型
    dynamic c = a;
    dynamic d= b;
    Console.WriteLine(c+d);
}   

调用泛型方法:

Add<string>("123","21");

三、ArrayList 动态数组

动态数组(一个集合)就是不固定长度和储存的数据类型的数组,可以储存任意类型的数据 并且长度会随着数组内容的增加减少进行改变

1.定义动态字符串

 ArrayList list1 = new ArrayList() { "张三","love","狗屎",666};

2.属性

(1)Count

获取动态数组的数据个数

Console.WriteLine("长度:"+list1.Count);

(2)读取某个位置的数据 索引

Console.WriteLine(list1[3]);

3.方法

(1)Add

在数据的末尾添加

list1.Add("爽吃");

(2)Clear

清除列表 删除动态数组中的所有数据 Count重置为0

list1.Clear();

(3)Insert

插入在指定索引位置的数据

list1.Insert(2, "小明");

(4)Contains

查询动态数组中是否存在某个数据

Console.WriteLine(list1.Contains("李"));

(5)Remove

移除指定的数据

list1.Remove("666");

(6)RemoveAt

删除指定位置索引的值

list1.RemoveAt(0);

(7)RemoveRange

删除数组中指定范围内的数据

list1.RemoveRange(0, 3);//从0开始  删除3个

(8)Reverse

list1.Reverse();

(9)Sort

使用默认的排序方式进行排序

list1.Sort();

四、列表List

  • 列表是属于集合类里面的
  • 集合类:用来储存一堆数据的,是数据的集合
  • 列表:列表只是集合中的一种储存数据的表达方式

1.创建列表

  • List 列表属于是泛型类 列表在创建的时候可以给他一些初始值,在()后面更上{ }里面写数据。
  • 更数组差不多 但是数组的长度是固定的 ,列表是可以往里面添加数据 ,长度是不固定的。
  • 列表的内部数据在储存时其实也是使用的数组,一个空的列表会有长度为0的数组,当给列表添加数据的时候,默认情况下 列表的容量会扩大为4,如果添加5个数据就会扩容为8。。。倍增 如果自己设置了容量,就会更具设定的倍增,当列表的容量发生变化时,会重新创建新的数组 Array.Copy()将就数组中的数据复制到新数组里面去
List<int> list= new List<int>() { 6,3,4,10,1,2,3,4,5};
List<string> liststr = new List<string>();

2.方法

(1)Add

末尾添加数据

liststr.Add("爽吃");

(2)Count

获取当前列表中的数据个数

Console.WriteLine(liststr.Count);

(3)Insert

向列表中指定的位置插入输入

liststr.Insert(0,"张三");

(4)Remove

删除列表中指定的数据

liststr.Remove("张三");

(5)RemoveAt

删除列表中指定索引的数据

liststr.RemoveAt(0);

(6)RemoveAll

删除与之条件相匹配的数据 ,会返回删除的个数

int a = liststr.RemoveAll(EndsWithSaurus);
Console.WriteLine(a);
 private static bool EndsWithSaurus(string s)
 {
     return s.EndsWith("张三");
 }

(7)Sort

list.Sort();

(8)Capacity

获取或设置列表的容量

Console.WriteLine(listint.Capacity);

五、字典

  • 字典类似于List 只能储存类型固定的数据 长度不固定
  • List 使用索引进行数据的操作,字典要使用“键”进行数据操作
  • 键:标识,在一个字典中,键是唯一的,并且不能为null
  • 字典的作用:一般用于信息的记录 用字典储存的数据可以快速的查询

1.创建字典

格式Dictionary<键的数据类型,值的数据类型>变量=new Dictionary<键的数据类型,值的数据类型>();
创建字典时 可以给一些初始数据

Dictionary<string, int> keyValuePairs = new Dictionary<string, int>()
{
    { "Name",666},{ "性别",1},{ "年龄",18}
};

2.方法

(1)Add

向字典中添加数据

keyValuePairs.Add("身高", 189);

(2)Count

获取字典中储存的数据个数

Console.WriteLine(keyValuePairs.Count);

(3)索引器 访问键

访问字典中某个数据

Console.WriteLine(keyValuePairs["Name"]);

(4)修改键位 Name 的数据值

keyValuePairs["Name"] = 888;

(5)ContainsKey

判断字典中是否包含某个 键

Console.WriteLine(keyValuePairs.ContainsKey("Name"));

(6)ContainsValue

判断字典中是否包含某个 值

Console.WriteLine(keyValuePairs.ContainsValue(888));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值