LINQ基础之From和GroupBy子句

下面给出详细的 "LINQ基础之From和GroupBy子句" 的攻略:

From子句

from 子句用来指定数据源和创建一个范围变量,它负责查询和返回一个序列。

下面是一个示例,通过使用 from 子句从一个整数数组中选择所有大于 5 的数字:

int[] numbers = { 2, 3, 5, 7, 11, 13 };
var result = from n in numbers
             where n > 5
             select n;
foreach (var n in result)
{
    Console.WriteLine(n);
}

输出:

7
11
13

从上面的例子中,我们可以看到,通过 from 子句创建了一个名为 n 的范围变量,指定了数据源为 numbers 数组。之后在 where 子句中我们对每个元素都进行了判断,如果满足条件就筛选出来了。

GroupBy子句

GroupBy 子句用于将一个序列分组。通过将序列中的元素按指定的键值进行分组,来返回分组后的新序列。

下面是一个实际示例,通过 GroupBy 子句将一组人按照所在的城市进行分组:

public class Person
{
    public string Name { get; set; }
    public string City { get; set; }
}

List<Person> people = new List<Person>
{
    new Person { Name = "John", City = "Seattle" },
    new Person { Name = "Jane", City = "Portland" },
    new Person { Name = "Tom", City = "Seattle" },
    new Person { Name = "Jerry", City = "Portland" },
};

var result = from p in people
             group p by p.City into g
             select new { City = g.Key, Count = g.Count() };

foreach (var g in result)
{
    Console.WriteLine($"{g.City}: {g.Count}");
}

输出:

Seattle: 2
Portland: 2

从上面的代码中,我们可以看到,首先通过 group by 子句将人按照所在的城市分组,并在 into g 中将分组的结果保存到名为 g 的临时变量中。

接着,我们从分组结果 g 中使用 Key 属性可以获取到分组的键值(也就是城市名),并使用 Count 方法可以获取到该组中元素的个数。

最后,我们使用 select new 创建一个新的匿名类型,将城市名和该组元素个数作为元素返回给结果集。

以上就是 LINQfromGroupBy 子句的基础用法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:LINQ基础之From和GroupBy子句 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • VSCode调试C#程序及附缺失.dll文件的解决办法

    当我们在使用VSCode进行C#程序开发时,常常需要调试代码,以验证代码的正确性。在本文中,将详细讲解基于 .NET Core 的 VSCode 调试 C# 程序的完整攻略,并且介绍如何解决缺失.dll文件的问题。 准备工作 在开始之前,需要先准备好如下工作环境: Visual Studio Code 编辑器 .NET Core SDK 安装完上述工具之后,…

    C# 2023年5月31日
    00
  • ASP.NET编译执行常见错误及解决方法汇总

    ASP.NET编译执行常见错误及解决方法汇总 如果你正在使用ASP.NET进行开发,那么你可能会遇到一些常见的编译和执行错误。在这篇文章中,我们将讨论一些最常见的问题,并提供解决方法。 错误信息:“Could not load file or assembly ‘xxxx’ or one of its dependencies. The system can…

    C# 2023年5月14日
    00
  • LINQ投影操作符Select与限制操作符where介绍

    LINQ是.NET Framework中的一种强大的查询语言,能够对各种数据集合进行查询操作。LINQ提供了多个操作符,其中投影操作符Select和限制操作符where是常用的两种操作符。 Select操作符 Select操作符是一种投影操作符,用于通过从集合中选择特定的项创建新集合。Select操作符的语法如下: IEnumerable<TResul…

    C# 2023年6月1日
    00
  • C#中如何使用redis

    下面是使用C#连接Redis的完整攻略: 准备工作 在开始使用C#连接Redis之前,需要确保机器上已经安装了Redis。如果没有安装Redis,可以从https://redis.io/download这个官网下载Redis并安装。 安装完成后,需要启动Redis服务,可以通过命令行输入 redis-server 来启动Redis服务。 在C#中连接Redi…

    C# 2023年6月6日
    00
  • C#语言async await工作原理示例解析

    下面是详细讲解“C#语言async await工作原理示例解析”的完整攻略,包括工作原理和示例说明。 C#语言async await工作原理示例解析 async await原理 async和await是C#5.0提供的一种异步编程方式,在处理对IO操作、CPU密集型操作等任务时都可以提供性能的提升。async关键字会告诉编译器当前的方法是一个异步方法,而aw…

    C# 2023年6月6日
    00
  • C# jpg缩略图函数代码

    下面详细讲解一下“C# jpg缩略图函数代码”的完整攻略。 简介 在web开发中,我们通常需要对图片进行缩略操作以提升页面加载速度和用户的浏览体验。下面介绍一下如何使用C#代码实现对jpg格式的图片进行缩略操作。 步骤 第一步:引用命名空间 首先需要引用命名空间 System.Drawing,该命名空间提供了在图像操作方面非常强大的支持。 using Sys…

    C# 2023年6月7日
    00
  • C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能

    C#设计模式之Template模板方法模式实现ASP.NET自定义控件密码强度检测功能 目的 本文介绍如何通过使用C#设计模式中的Template模式,实现ASP.NET自定义控件中的密码强度检测功能。 前提条件 本文假设读者已经具备以下知识储备: C#编程语言基础 ASP.NET自定义控件的基础知识 设计模式中的Template模式基础概念和使用方法 实现…

    C# 2023年6月3日
    00
  • c#读取xml文件到datagridview实例

    接下来我将为您详细讲解“C#读取XML文件到DataGridView实例”的完整攻略。 1. 读取XML文件 在C#中,读取XML文件可以使用XmlDocument类或XDocument类。这里以XmlDocument类为例。 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("data.xml…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部