C# 泛型集合常用方法 - LinQ
排序
Student sModel = new Student(); List<Student > list = new List<Student >(); list= list.OrderBy(s=> s.Age).ThenBy(s => s.Sort).ToList();
过滤
Student sModel = new Student(); List<Student > list = new List<Student >(); list= list.Where(s=> s.ID>10).ToList();
返回序列中满足条件的第一个序列
Student sModel = new Student(); List<Student > list = new List<Student >(); Student = list.FirstOrDefault(s=> s.Name="名称").ToList();
相同项合并数量
List<Student> list = new List<Student>(); List<Student> listCopy = XCMaterial.Clone2(list); list.ForEach(c => { var group = listCopy.Where(a => a.Class == c.Class); c.Num = group.Sum(x => x.Num); });
集合去重
List<Student> list = new List<Student>(); list = list.Where((x, i) => list.FindIndex(z => z.ClassName == x.ClassName) == i).ToList();
逐个循环
List<Student> list = new List<Student>(); list.ForEach(s=> { if(s.Name=="姓名") s.Num+=1; });
集合复制
public static T Clone2<T>(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); } }
心若没有栖息的地方,到哪里都是在流浪!
——蓅烺ゞの貓