前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c# LINQ查询方法(2)

c# LINQ查询方法(2)

作者头像
MaybeHC
发布2024-04-23 19:21:31
490
发布2024-04-23 19:21:31
举报
文章被收录于专栏:技术之路技术之路

聚合类

Count、Max/Min、Average

直接通过代码进行演示

代码语言:javascript
复制
        static void Main(string[] args)
        {
            Student obj1 = new Student() { StuId = 1001, StuName = "学生1" };
            Student obj2 = new Student() { StuId = 1002, StuName = "学生2" };
            Student obj3 = new Student() { StuId = 1003, StuName = "学生3" };
            Student obj4 = new Student() { StuId = 1004, StuName = "学生4" };
            Student obj5 = new Student() { StuId = 1005, StuName = "学生5" };
            Student obj6 = new Student() { StuId = 1006, StuName = "学生6" };
            List<Student> stuList = new List<ConsoleApplication1.Student>() { obj1, obj2, obj3, obj4, obj5, obj6 };
            //混合模式
            var count = (from c in stuList
                         where c.StuId > 1004
                         select c).Count();
            //查询方法
            var count1 = stuList.Where(c => c.StuId > 1004).Count();
            var max = (from c in stuList
                       select c.StuId).Max();
            var min = (from c in stuList
                       select c.StuId).Min();
            var average = (from c in stuList
                       select c.StuId).Average();
            var sum = (from c in stuList
                       select c.StuId).Sum();
            Console.WriteLine("count=" + count + " count1=" + count1 + " max=" + max + " min=" + min + " average=" + average + " sum=" + sum);
            Console.ReadKey();
        }

结果:

在这里插入图片描述
在这里插入图片描述

排序类

ThanBy

下面用两种方式来实现排序,经过测试后结果相同

代码语言:javascript
复制
        static void Main(string[] args)
        {
            Student obj1 = new Student() { StuId = 1001, StuName = "学生1" };
            Student obj2 = new Student() { StuId = 1005, StuName = "学生2" };
            Student obj3 = new Student() { StuId = 1007, StuName = "学生3" };
            Student obj4 = new Student() { StuId = 1002, StuName = "学生4" };
            Student obj5 = new Student() { StuId = 1003, StuName = "学生5" };
            Student obj6 = new Student() { StuId = 1002, StuName = "学生6" };
            List<Student> stuList = new List<ConsoleApplication1.Student>() { obj1, obj2, obj3, obj4, obj5, obj6 };
            var stus1 = from s in stuList
                        orderby s.StuId,s.StuName
                        select s;
            var stus2 = stuList.OrderBy(s => s.StuId)
                .ThenBy(s => s.StuName)
                .Select(s => s);
            foreach(var s in stus1)
            {
                Console.WriteLine(s.StuName);
            }
            Console.WriteLine("--------------------");
            foreach (var s in stus2)
            {
                Console.WriteLine(s.StuName);
            }
            Console.ReadKey();
在这里插入图片描述
在这里插入图片描述

分区类查询

Take、Skip、TakeWhile、SkipWhile

Take 提取指定数量的项 Skip 跳过指定数量的项并获取剩余的项 TakeWhile 只有满足指定的条件,就会返回序列的元素,然后跳过剩余的元素 SkipWhile 只有满足指定的条件,就跳过序列中的元素,然后返回剩余元素 示例:

代码语言:javascript
复制
        static void Main(string[] args)
        {
            int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            var list1 = nums.Skip(1).Take(3);
            var list2 = nums.SkipWhile(i => i % 3 != 0).TakeWhile(i => i % 2 != 0);
            foreach (var item in list1) { Console.WriteLine(item); }
            Console.WriteLine("-------------");
            foreach (var item in list2) { Console.WriteLine(item); }
            Console.ReadLine();
        }

结果:

在这里插入图片描述
在这里插入图片描述

集合类查询

Distinct

去掉集合中的重复项 示例:

代码语言:javascript
复制
        static void Main(string[] args)
        {
            int[] nums = { 1, 3, 3, 4, 3, 6, 7, 8, 8 };
            var list1 = nums.Distinct();
            foreach (var item in list1) { Console.WriteLine(item); }
            Console.ReadLine();
        }

结果:

在这里插入图片描述
在这里插入图片描述

生成类查询

Range、Repeat

Range生成一个整数序列 Repeat生成一个重复项的序列(产生泛型序列) 示例:

代码语言:javascript
复制
        static void Main(string[] args)
        {
            var nums1 = Enumerable.Range(1, 10);
            var nums2 = Enumerable.Repeat("LINQ",5);
            foreach (var item in nums1) { Console.WriteLine(item); }
            Console.WriteLine("------------------------");
            foreach (var item in nums2) { Console.WriteLine(item); }
            Console.ReadLine();
        }

结果:

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 聚合类
    • Count、Max/Min、Average
    • 排序类
      • ThanBy
      • 分区类查询
        • Take、Skip、TakeWhile、SkipWhile
        • 集合类查询
          • Distinct
          • 生成类查询
            • Range、Repeat
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档