C# 泛型集合常用方法 - LinQ
排序
Student sModel = new Student(); Listlist = new List (); list= list.OrderBy(s=> s.Age).ThenBy(s => s.Sort).ToList();
过滤
Student sModel = new Student(); Listlist = new List (); list= list.Where(s=> s.ID>10).ToList();
返回序列中满足条件的第一个序列
Student sModel = new Student(); Listlist = new List (); Student = list.FirstOrDefault(s=> s.Name="名称").ToList();
相同项合并数量
Listlist = new List (); List listCopy = XCMaterial.Clone2(list); list.ForEach(c => { var group = listCopy.Where(a => a.Class == c.Class); c.Num = group.Sum(x => x.Num); });
集合去重
Listlist = new List (); list = list.Where((x, i) => list.FindIndex(z => z.ClassName == x.ClassName) == i).ToList();
逐个循环
Listlist = new List (); list.ForEach(s=> { if(s.Name=="姓名") s.Num+=1; });
集合复制
public static T Clone2(T RealObject) { using (Stream objectStream = new MemoryStream()) { //利用 System.Runtime.Serialization序列化与反序列化完成引用对象的复制 IFormatter formatter = new BinaryFormatter(); formatter.Serialize(objectStream, RealObject); objectStream.Seek(0, SeekOrigin.Begin); return (T)formatter.Deserialize(objectStream); } }