先定义两个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();
未完待续...