【C#泛型集合常用方法】如list.FirstOrDefault()、list.Where(n=>n.Id==xx).ToList()等

先定义两个list:

//定义个实体类ModelDemo
{
    public int Id {get ;set; }
    public string Name {get; set; }
}
//定义int类型集合intList和ModelDemo类型集合modelList
List<int> intList = new List<int>();
List<ModelDemo> modelList = new List<ModelDemo>();

1. Add(),AddRange()

intList.Add(1);     //向集合中添加一个元素1
modelList.Add(new ModelDemo {Id = 1,Name="添加"});    //向modelList添加一个对象元素
//AddRange()顾名思义范围添加、批量添加
var tempList = new List<ModelDemo>{ new ModelDemo{Id=2,Name="哈哈"},new ModelDemo{Id=3,Name="嘿嘿"}};
modelList.AddRange(tempList);    //将集合tempList添加到modelList中

2. Insert(), InsertRange()

intList.Insert(0,3);    //在索引为0处插入一个元素3

modelList.InsertRange(1,tempList);    //在索引1处插入集合tempList

3. Remove(),RemoveAt() , RemoveRange(), RemoveAll()

intList.Remove(3);    //移除元素3
intList.RemoveAt(1);    //移除索引(下标)为1的元素
modelList.RemoveRange(1,3);    //从索引1开始移除3个元素,包括索引1本身元素
modelList.RemoveAll(m=> m.Id>=1);    //删除modelList中所有Id属性大于等于1的元素

4. Clear()

modelList.Clear();    //清空所有元素

5. Contains(), Any() 判断是否存在,bool类型

if(intList.Contains(3)){  ...  }

if(modelList.Any(m=> m.Id==1))    //判断集合中是否存在属性Id=1的对象元素
{
    ...
}

6,First(),FirstOrDefault() 取list中的第一个\第一个满足条件的对象(从.NetFramework3.5后FirstOrDefault()的出现代替了早期Find()方法的应用,所以这里不再赘述Find()方法)

//这里顺便一提,我曾经写过这么一句代码,大概如下
var model = storeList.Where(m=> m.Flag==5).ToList().FirstOrDefault();
//我想取满足Flag属性为5的一个对象,同样是FirstOrDefault()取满足条件对象中的第一个值,从性能上来讲不如下面这种
var model = storeList.FirstOrDefault(m=> m.Flag==5);

//即list中满足条件对象中的第一个对象=> list中第一个满足条件的对象

7. 排序方法Sort()、Reverse()、OrderBy()

intList.Sort();    //默认升序
intList.Reverse();    //反转元素
modelList.OrderBy(m=>m.Id).ToList();    //根据实体类属性Id将集合排序,升序
modelList.OrderByDescending(m=> m.Id).ToList();    //降序排序

8. Join()方法,类似于sql中的join连接,有时间我再详细讲解,有兴趣的朋友可以自行了解一下,大概用法如下:

//等同于linq的from a in aList join b in bList on a.Id equas b.ClassId SELECT new B
aList.Join(bList , a => a.Id,b => b.ClassId , (a , b) => b).ToList();

未完待续...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值