c# List集合学习

时间:2022-09-03 13:46:09

1---集合,可以理解成容器 泛型集合 非泛型集合
2---使用集合用到的命名空间 using System.Collections.Generic;
3---集合是如何来的?
集合的前辈是数组,数组在内存中是连续存储的,所以它的索引速度非常快,赋值和修改数据也很方便;
但是数组也有很多不足的地方:比如在数组的两个数据之间插入数据是很麻烦的;还有我们在声明数组的时候,
必须声明数组的长度,声明的长度过长,会造成内存浪费;数组长度过短,会有数据溢出的错误。而C#最新提出了
ArrayList对象来客服这些缺点;
4---常用方法?
Add() Insert(num,"值"); Clear();Remove();Count();RemoveAt();Next(minValue,maxValue);Contains();
5---C#2.0后又会出现List<T>呢?
ArrayList的确定 存储的类型各种各样,存在装箱拆箱的操作;
6---List 声明List集合的时候 要声明集合内数据的对象类型;
6---数组 存储同一种数据类型的容器;1 只能存储同一种数据类型;2 一旦初始化,长度是固定的 3 数组中的元素和元素之间的内存地址是连续的;
object类型的数组和存储任何类型的数据;

ArrayList和List的区别

1 ArrayList对元素的类型没有限制 

2 ArrayList对元素的类型没有限制 所以把这些元素当做Object对象来存储

3ArrayList使用时 效率低一些

声明一个List对象 

List<string>theVal=new List<string>();

List<"自定义类">ll=new List<"自定义类">();//也可以使用自定义类

//List对元素类型有限制 但ArrayList对元素类型没有限制 可以添加各种类型的元素

//添加元素使用Add()方法

theVal.Add("Hello");

theVal.Add("World");

theVal.Add("Cui");

//使用Insert()方法插入元素 把字符串插入到下标为1的位置

theVal.Insert(1,"hi");

//使用Remove()方法删除指定元素

theValue.Remove("hi");

//使用RemoveAt()删除指定下标的元素

theVal.RemoveAt(1);

//使用count元素获取当前list集合中的元素个数

int num= theVal.count();

//使用Contains()方法判断指定的元素是否存在list集合中

bool b=theVal.Contains("hello");

//使用Clear() 清除整个list集合

theVal.Clear();

二 ArrayList和list不同 可以存储各种类型的元素

ArrayList arr=new ArrayList();

arr.Add("123");

arr.Add("hello");

arr.Add("你好");

//2 因为ArrayList对元素类型没有限制 所以把这些元素当做Object来存储

string str=Convert.ToString(arr[0]);//arr[0]是Object类型

string str1=(string)arr[0];