zoukankan      html  css  js  c++  java
  • Linq的筛选、排序等几种用法(VS2010)

    1.首先需要一个集合用来测试:

     //定义一个集合要用的类:

     public class People
      {
                public People(string name, string sex, int age,decimal height)
                {
                    this.Name = name;
                    this.Sex = sex;
                    this.Age = age;
                    this.Height = height;
                }

                public string Name { get; set; }
                public string Sex { get; set; }
                public int Age { get; set; }

                public decimal Height { get; set; }

                public string ToString(string format)
                {
                    return ToString(format);
                }

    }

     //制造几条测试数据:

     List<People> list = new List<People>();
     list.Add(new People("ymw", "男", 22, 170m));
     list.Add(new People("Lily", "女", 21, 160m));
     list.Add(new People("xj", "女", 20, 158m));
     list.Add(new People("Lucy", "女", 23, 166m));
     list.Add(new People("MM", "女", 18, 168m));

     2.Linq特性示例一:

                //筛选
                List<People> lists = list.FindAll(
                     delegate(People p)
                     {
                         return p.Sex == "女";
                     });

                 //排序(根据类型)
                 lists.Sort(
                     delegate(People p1, People p2)
                     {
                         return p1.Name.CompareTo(p2.Name);
                     });

                 foreach (People item in lists)
                 {
                     this.txt.Text += item.Name + "~" + item.Age + "~" + item.Sex+"~"+item.Height + "\r\n";
                 }

     //如图测试结果:过滤了性别为男的人并按照名称排序↓

    3.Linq特性示例二:

     //Where、Select、OrderByDescending 用法:Where、Select用来帅选过滤;OrderByDescending是按降序排列

     IEnumerable<People> lists = list.Where(
                    delegate(People p)
                    {
                        return p.Sex == "女";
                    }).OrderByDescending( //OrderBy
                    delegate(People p)
                    {
                        return p.Height;
                    }).Select(
                    delegate(People p)
                    {
                        return p;
                    });
                foreach (People item in lists)
                {
                    this.txt.Text += item.Name + "~" + item.Age + "~" + item.Sex + "~" + item.Height + "\r\n";
                }

    // var lists2 = list.Where(p => p.Sex == "女" || p.Sex == "男").OrderBy(p => p.Height).Select(p => p);

    //如图测试结果:过滤了性别为男的人并按照身高降序排序↓

    4.Linq特性示例三:

    // λ表达式
     IEnumerable<People> lists = list.Where(p => p.Sex == "女").OrderByDescending(p => p.Height).Select(p => p);

     foreach (People item in lists)
      {
             this.txt.Text += item.Name + "~" + item.Age + "~" + item.Sex + "~" + item.Height + "\r\n";
      }

    //测试结果如上图实例二:过滤了性别为男的人并按照身高降序排序↓

    5.Linq特性示例四:

    var lists = (from p in list
                             where p.Sex == "女"
                             orderby p.Age ascending, p.Height
                             select p).Take(4); //Take()取前几条记录

      foreach (People item in lists)
      {
              this.txt.Text += item.Name + "~" + item.Age + "~" + item.Sex + "~" + item.Height + "\r\n";
       }

    //测试结果如下图,按年龄排序且取前四条记录↓

  • 相关阅读:
    Linux 常用命令-01
    神经网络工具箱torch.nn -05
    Autograd与计算图-04
    Tensor的索引与变形-03
    Tensor数据类型-00
    Tensor的创建与维度查看-01
    转载:网友对rootfs的理解
    【转载】linux启动流程分析
    windows7 自带计算器bug
    网上同仁对linux文件系统的剖析
  • 原文地址:https://www.cnblogs.com/_ymw/p/2815248.html
Copyright © 2011-2022 走看看