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);
            }
        }

 

posted @ 2019-01-05 09:29  蓅烺ゞの貓  阅读(352)  评论(0编辑  收藏  举报