【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();

未完待續...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章