先定義兩個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();
未完待續...