C#List集合讲解

List代表集合,属于泛型的一种定义方式,主要用途是使用对应的类型批量对数据操作

可以理解为是一个动态的数组,支持增删改查

List<int> list = new List<int>();
//Add方法代表向List中添加元素
list.Add(1);
list.Add(2);
list.Add(3);

因为List属于泛型,所以类型定义不受限制

自然可以用类命来代替数值类型

List<People> list2 = new List<People>();
People p1 = new People();
p1.id = 1;
People p2 = new People();
p2.id = 2;
list2.Add(p1);
list2.Add(p2);
//把所有的id打印出来
foreach (People item in list2)
{
    Console.WriteLine($"人员的id:"+item.id);
}

//定义一个people类
public class People
{
    public int id { get; set; }
}

List相对应的API(方法):

//插入数据,第一个参数代表索引,第二个数据代表插入的数据
list.Insert(0, 20);
//移除目标:匹配到的第一个,如果不存在则没有意义,方法返回bool
list.Remove(0);
//根据索引来移除
list.RemoveAt(0);
foreach (int item in list)
{
    Console.WriteLine("" + item);
}
List<string> names = new List<string> { "Alice", "Bob", "Chars", "David" };
//排序
names.Sort();
//Join:把数组转成字符串的方法
Console.WriteLine($"排序后:{string.Join(",",names)}");
//反序
names.Reverse();
Console.WriteLine($"反序后:{string.Join(",", names)}");
//查找:=>箭头函数,理解为方法的快速实现方式
//遍历names中的每一个元素,用name接收,然后通过StartsWith查看哪一个是以C开头的,返回出来,以第一个为主
string result  =  names.Find(name => name.StartsWith("C"));
Console.WriteLine($"第一个以C开头的元素为{result}");
//字符串长度>4的都找到
//返回:还是List,学会看方法的返回类型
//var:未知,赋值的时候在确定类型
var allResults =  names.FindAll(name => name.Length>4);
Console.WriteLine($"所有长度大于4的字符串{string.Join(",", allResults)}");

//根据条件在列表中查找匹配第一项的索引,找不到返回-1
int index =   names.IndexOf("Bob");
Console.WriteLine($"bob的第一顺位是:{index}");
//从后往前找
index = names.LastIndexOf("Bob");
Console.WriteLine($"bob的最后出现的顺位是:{index}");

//查找最后一个字符串>4
var last = names.FindLast(name => name.Length > 4);
Console.WriteLine($"最后一个字符串长度>4的元素为:{ last}");

//**************************************案例说明
List<People> ps = new List<People> {

     new People{ Name = "张三",Age = 30},
     new People{ Name = "李四",Age = 20},
     new People{ Name = "王五",Age = 40},
     new People{ Name = "赵六",Age = 50},
};
//把年龄大于20的遍历出来
List<People> values =  ps.FindAll(p => p.Age > 20);
Console.WriteLine($"所有年级大于20的:{string.Join(",", values)}");


public class People
{
    public int Age { get; set; }
    public string Name { get; set; }
    public override string ToString()
    {
        return $"这个人的年龄为:{Age},叫作:{Name} ";
        
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上位机_0x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值