C# Linq 详解二

这篇具有很好参考价值的文章主要介绍了C# Linq 详解二。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

概述

七、OrderBy 

八、OrderByDescending

九、Skip

十、Take

十一、Any

十二、All


C# Linq 文档(一)
1.Where,2.Select,3.GroupBy,4.First / FirstOrDefault,5.Last / LastOrDefault

C# Linq 文档(二)
1.OrderBy ,2.OrderByDescending,3.Skip,4.Take,5.Any,6.All

C# Linq 文档(三)
1.Sum / Min / Max / Average,2.Distinct,3.Concat,4.Join,5.ToList ,6.ToArray,7.ToDictionary,

C# Linq 文档(四)
1.SelectMany,2.Aggregate,3.DistinctBy,4.Reverse,5.SequenceEqual,6.Zip,7.SkipWhile ,8.TakeWhile

C# Linq 文档(一)_熊思宇的博客-CSDN博客

C# Linq 文档(三)_熊思宇的博客-CSDN博客

C# Linq 文档(四)_熊思宇的博客-CSDN博客


概述

语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。 此外,需要针对每种类型的数据源了解不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等。 借助 LINQ,查询成为了最高级的语言构造,就像类、方法和事件一样。

对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。 查询表达式采用声明性查询语法编写而成。 使用查询语法,可以用最少的代码对数据源执行筛选、排序和分组操作。 可使用相同的基本查询表达式模式来查询和转换 SQL 数据库、ADO .NET 数据集、XML 文档和流以及 .NET 集合中的数据。
 

七、OrderBy 

OrderBy 方法用于对集合中的元素进行升序排序。它返回一个新的排序后的集合,而不会修改原始集合。

这里是根据用户的年龄做了一个排序,在 OrderBy 方法的参数就是要排序的内容。

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<People> peopleList = new List<People>()
            {
                new People(){Name="张三", Age=12, Career="学生" },
                new People(){Name="柱子", Age=25, Career="农民" },
                new People(){Name="铁蛋", Age=23, Career="农民" },
                new People(){Name="狗剩", Age=34, Career="职员" },
                new People(){Name="二狗", Age=28, Career="职员" },
            };
            var collect = peopleList.OrderBy(x => x.Age);
            foreach (var people in collect)
            {
                Console.WriteLine("姓名:{0}, 年龄:{1}", people.Name, people.Age);
            }

            Console.ReadKey();
        }
    }

    class People
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Career { get; set; }
    }
}

运行:

C# Linq 详解二,C#,c#,linq

另一种就是纯数字了,这种排序的用法和上面一样

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int[] numbers = { 5, 2, 8, 4, 1 };
            var sortedNumbers = numbers.OrderBy(n => n);
            foreach (var number in sortedNumbers)
            {
                Console.WriteLine(number);
            }

            Console.ReadKey();
        }
    }
}

运行:

C# Linq 详解二,C#,c#,linq

八、OrderByDescending

OrderByDescending 方法用于对集合中的元素进行降序排序。它返回一个新的排序后的集合,而不会修改原始集合。

OrderByDescending 是 OrderBy 的降序排序,用法和 OrderBy 也差不多,只是返回的值顺序不一样

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<People> peopleList = new List<People>()
            {
                new People(){Name="张三", Age=12, Career="学生" },
                new People(){Name="柱子", Age=25, Career="农民" },
                new People(){Name="铁蛋", Age=23, Career="农民" },
                new People(){Name="狗剩", Age=34, Career="职员" },
                new People(){Name="二狗", Age=28, Career="职员" },
            };
            var collect = peopleList.OrderByDescending(x => x.Age);
            foreach (var people in collect)
            {
                Console.WriteLine("姓名:{0}, 年龄:{1}", people.Name, people.Age);
            }

            Console.ReadKey();
        }
    }

    class People
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Career { get; set; }
    }
}

运行:

C# Linq 详解二,C#,c#,linq

九、Skip

Skip方法用于跳过序列中指定数量的元素,并返回剩下的元素。

案例:

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<People> peopleList = new List<People>()
            {
                new People(){Name="张三", Age=12, Career="学生" },
                new People(){Name="柱子", Age=25, Career="农民" },
                new People(){Name="铁蛋", Age=23, Career="农民" },
                new People(){Name="狗剩", Age=34, Career="职员" },
                new People(){Name="二狗", Age=28, Career="职员" },
            };
            var collect = peopleList.Skip(1);
            foreach (People people in collect)
            {
                Console.WriteLine(people.Name);
            }

            Console.ReadKey();
        }
    }

    class People
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Career { get; set; }
    }
}

运行:

C# Linq 详解二,C#,c#,linq

注意这里,skip 传入的是1,它表示从数组中的1这里开始,包含1的下标在里面,一起返回回来

这么写可能不明显,用数字来写会更明显一点,看下面的案例,传入的索引是3,那么就是数组中的下标3这里开始,包含3在里面,一直到结束,下标3这里是数字是24,那么就是24-15

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<int> numList = new List<int> { 1, 4, 5, 24, 43, 67, 12, 90, 15 };
            var collect = numList.Skip(3);
            foreach (int num in collect)
            {
                Console.WriteLine(num);
            }

            Console.ReadKey();
        }
    }
}

运行:

C# Linq 详解二,C#,c#,linq

十、Take

Take 方法用于从集合中选择指定数量的元素。它返回一个新的集合,其中包含原始集合中的前几个元素。

Skip 获取的是后半部分,那么 Take 则是获取前半部分,用法差异不大。

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<int> numList = new List<int> { 1, 4, 5, 24, 43, 67, 12, 90, 15 };
            var collect = numList.Take(4);
            foreach (int num in collect)
            {
                Console.WriteLine(num);
            }

            Console.ReadKey();
        }
    }
}

运行:

C# Linq 详解二,C#,c#,linq

十一、Any

Any 方法用于检查集合中是否存在满足指定条件的元素。它返回一个布尔值,表示集合中是否存在符合条件的元素。

any 方法只要数组中条件满足一个,就会返回 true,比如数组中是否有一个年龄大于 23的人,它会从数组的第一个元素开始遍历,假设第一个元素满足条件,那么就立马返回 true。

案例1,查找是否存在年龄大于23的元素

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<People> peopleList = new List<People>()
            {
                new People(){Name="张三", Age=12, Career="学生" },
                new People(){Name="柱子", Age=25, Career="农民" },
                new People(){Name="铁蛋", Age=23, Career="农民" },
                new People(){Name="狗剩", Age=34, Career="职员" },
                new People(){Name="二狗", Age=28, Career="职员" },
            };
            bool result = peopleList.Any(x => x.Age > 23);
            Console.WriteLine("寻找结果:{0}", result);

            Console.ReadKey();
        }
    }

    class People
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Career { get; set; }
    }
}

运行:

C# Linq 详解二,C#,c#,linq

案例2,查找是否存在名字叫二狗的人

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<People> peopleList = new List<People>()
            {
                new People(){Name="张三", Age=12, Career="学生" },
                new People(){Name="柱子", Age=25, Career="农民" },
                new People(){Name="铁蛋", Age=23, Career="农民" },
                new People(){Name="狗剩", Age=34, Career="职员" },
                new People(){Name="二狗", Age=28, Career="职员" },
            };
            bool result = peopleList.Any(x => x.Name == "二狗");
            Console.WriteLine("寻找结果:{0}", result);

            Console.ReadKey();
        }
    }

    class People
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Career { get; set; }
    }
}

运行:

C# Linq 详解二,C#,c#,linq

如果将名字改为王五,那么就找不到了

C# Linq 详解二,C#,c#,linq
 

运行:

C# Linq 详解二,C#,c#,linq

十二、All

All 方法用于检查集合中的所有元素是否都满足指定的条件。它返回一个布尔值,表示集合中的所有元素是否都满足条件。

和 any 不一样的是,all 会判断所有的元素是否满足条件,只要有一个不满足条件,就返回 false

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<int> numList = new List<int> { 1, 4, 5, 24, 43, 67, 12, 90, 15 };
            bool result = numList.All(x => x > 0);
            Console.WriteLine("结果:{0}", result);

            Console.ReadKey();
        }
    }
}

运行:

C# Linq 详解二,C#,c#,linq

当前数组中的所有值都大于0,所以返回是  true,下面换一种写法:

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqTest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<int> numList = new List<int> { 1, 4, 5, 24, 43, 67, 12, 90, 15 };
            bool result = numList.All(x => x > 23);
            Console.WriteLine("结果:{0}", result);

            Console.ReadKey();
        }
    }
}

运行:

C# Linq 详解二,C#,c#,linq

end文章来源地址https://www.toymoban.com/news/detail-563652.html

到了这里,关于C# Linq 详解二的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# Linq 学会使用,学会自己编写Linq

    Linq我暂时理解为,一种内置的非常方便的数据查询的工具 我们先学习它的使用 //数据类 //新建了一个List数据,用来测试数据查询  //现在定义一个需求,需要查出 id2 的数据 引用Linq的命名空间  引用命名空间之后,我们的list对象,拥有了一个扩展方法,Where (扩展方法,在之前的博客

    2024年02月06日
    浏览(32)
  • C# Lambda,LINQ

    Lambda表达式和LINQ语句都是C#中用于查询和筛选数据的工具,但它们有一些异同点。 异同点: 1. 语法不同: Lambda表达式是一种匿名函数 ,它可以用于创建委托或表达式树。而LINQ语句是一种查询语句,它使用特定的和语法来查询数据。 2. 功能不同: Lambda表达式可以用于

    2024年02月09日
    浏览(310)
  • C# LINQ,SQL

    C#中的LINQ和SQL都是用于查询数据的工具,但它们有以下异同点: 异同点: 1. LINQ和SQL都可以用于查询数据,但LINQ是在C#中使用的语言集成查询,而SQL是一种独立的查询语言。 2. LINQ和SQL都支持基本的查询操作,如选择、过滤、排序和分组。 3. LINQ和SQL都支持连接多个表,但LI

    2024年02月10日
    浏览(28)
  • C#中的LINQ

    一:什么是LINQ LINQ代表语言集成查询,是.net框架的扩展,它允许我们用SQL查询数据库的方式来查询数据的集合 二:LINQ延迟查询的特性 延迟查询是指查询操作并不是在定义的时候执行,而是在遍历集合中的数据时才执行 因为作为yield迭代器的主体,只有使用foreach遍历执行到

    2023年04月09日
    浏览(33)
  • C#中LINQ的使用知多少?LINQ常功能整理,实例源代码解析

      LINQ(Language-Integrated Query)是C#语言中的一个强大的查询技术,它提供了一种统一的查询语法,可以用于查询和操作各种数据源,包括集合、数据库、XML等。下面详细描述了LINQ的20个功能点,并提供了相应的源代码。 查询集合中的所有元素: 使用条件过滤集合中的元素:

    2024年02月05日
    浏览(42)
  • C#高级编程 Linq介绍

    本文对C#高级编程部分的Linq查询进行介绍 目录 一、Linq起源 二 LINQ 操作组成 2.1数据源 2.2查询 3.3查询执行

    2024年02月11日
    浏览(30)
  • 【C# 基础精讲】LINQ 基础

    LINQ(Language Integrated Query)是一项强大的C#语言特性,它使数据查询和操作变得更加简洁、灵活和可读性强。通过使用LINQ,您可以使用类似SQL的语法来查询各种数据源,如集合、数组、数据库等。本文将介绍LINQ的基础概念、常见的LINQ操作和示例,以及如何在C#中利用LINQ进行数

    2024年02月12日
    浏览(28)
  • C#基础--Lambda和LINQ

    在.NetFramewok的不同版本都有不同的样子;在.NetCore下也都是支持的; 1.1 .Netframework1.0/1.1时代 1.2 .NetFramework2.0 匿名方法 增加了一个delegate, 可以访问到除了参数以外的局部变量 1.3 .NetFramework3.0 前期 去掉了delegate,添加了一个= goes to 1.4 .NetFramework3.0 后期 去掉了匿名

    2024年02月17日
    浏览(28)
  • C#版本LINQ增强开源库

    LINQ对应的中文名称是:语言集成查询,是对一系列直接将查询功能集成到C#语言技术的统称,我们最常用的场景是,用于数据库的查询功能。 在.Net中,本身对Objects也支持LINQ的扩展,但是对于一些特定的功能,就需要我们自己去扩展。 所以,今天给大家推荐一个LINQ扩展库,

    2023年04月13日
    浏览(30)
  • C#基础:利用LINQ进行复杂排序

    请你写出linq对表格排序, CODE=3排前面 ,其余按照 CODE降序 排序,CODE一样再按照 字母升序 排序 ID CODE VALUE A0001 1 A A0002 1 B A0003 1 C A0004 2 D A0005 2 E A0006 2 F A0007 3 G A0008 3 H A0009 3 I A0010 4 J 若再加大难度,ID=A0005的排第一,然后CODE=3排前面,其余按照CODE降序排序,再按照字母升序排

    2024年01月18日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包