.NET 9 中 LINQ 新增功能实操

news/2024/11/22 5:51:27/

LINQ 介绍

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

.NET 9 环境准备

需要体验 .NET 9 中 LINQ 的新增功能前提是需要安装 .NET 9 环境,安装 .NET 9 SDK 并且Visual Studio 2022需要更新至17.12版本。

  • 下载.NET 9.0:https://dotnet.microsoft.com/zh-cn/download/dotnet/9.0

CountBy方法

CountBy这个方法允许开发者按键来聚合集合中的元素,并计算每个键的出现次数。这使得计算某个数据集中特定元素的频率变得非常简单。

        public static void CountByExample(){var sourceText = "This is a test text. This is only a test. This is the best. This,This,This";// 统计每个单词出现的次数KeyValuePair<string, int> mostFrequentWord = sourceText.Split([' ', '.', ','], StringSplitOptions.RemoveEmptyEntries).Select(word => word.ToLowerInvariant()).CountBy(word => word).MaxBy(pair => pair.Value);Console.WriteLine($"最常见的词是:'{mostFrequentWord.Key}' 出现次数: {mostFrequentWord.Value}");}

输出结果:

AggregateBy方法

AggregateBy这个方法提供了更强大的聚合功能,开发者可以定义一个聚合逻辑(如求和、平均值等),并按键进行聚合。该方法在需要基于键对集合中的元素进行复杂计算时非常有用。

        public static void AggregateByExample(){(string id, int score)[] data =[("0", 88),("1", 5),("2", 4),("1", 10),("6", 5),("4", 10),("6", 25)];// aggregatedData 是一个序列,包含按姓名分组并计算总分的元素var aggregatedData =data.AggregateBy(keySelector: entry => entry.id,seed: 0,(totalScore, curr) => totalScore + curr.score);foreach (var item in aggregatedData){Console.WriteLine(item);}}

输出结果:

Index<TSource>(IEnumerable<TSource>) 方法

借助 Index<TSource>(IEnumerable<TSource>),可以快速提取可枚举项的隐式索引。 现在,可以编写代码(如以下代码片段)来自动为集合中的项编制索引。

        public static void IndexExample(){var lines = new List<string> { "First line", "Second line", "Third line" };foreach (var (index, line) in lines.Index()){Console.WriteLine($"Line {index + 1}: {line}");}}

输出结果:

参考文章

  • https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-9/overview#linq


http://www.ppmy.cn/news/1548955.html

相关文章

【开源风云】从若依系列脚手架汲取编程之道(八)

&#x1f4d5;开源风云系列 &#x1f34a;本系列将从开源名将若依出发&#xff0c;探究优质开源项目脚手架汲取编程之道。 &#x1f349;从不分离版本开写到前后端分离版&#xff0c;再到微服务版本&#xff0c;乃至其中好玩的一系列增强Plus操作。 &#x1f348;希望你具备如下…

二进制之和

问题描述 小U和小R喜欢探索二进制数字的奥秘。他们想找到一个方法&#xff0c;将两个二进制字符串相加并以十进制的形式呈现。这个过程需要注意的是&#xff0c;他们的二进制串可能非常长&#xff0c;所以常规的方法可能无法处理大数。小U和小R希望你帮助他们设计一个算法&…

Windows Server 2022 Web1

载入靶机&#xff0c;看到相关描述&#xff1a; 进入虚拟机发现桌面有phpstudy和解题两个软件&#xff1a; 打开解题.exe&#xff0c;发现里面是一些问题&#xff0c;接下来就需要获取相关信息&#xff1a; 1、shell密码 2、IP地址 3、隐藏账户名称 4、挖矿程序的矿池域名 打…

学了Arcgis的水文分析——捕捉倾泻点,河流提取与河网分级,3D图层转要素失败的解决方法,测量学综合实习网站存着

ArcGIS水文分析实战教程&#xff08;7&#xff09;细说流域提取_汇流域栅格-CSDN博客 ArcGIS水文分析实战教程&#xff08;6&#xff09;河流提取与河网分级_arcgis的dem河流分级-CSDN博客 ArcGIS水文分析实战教程&#xff08;5&#xff09;细说流向与流量-CSDN博客 ArcGIS …

2024年11月17日Github流行趋势

项目名称&#xff1a;codecrafters-io / build-your-own-x 项目维护者&#xff1a;danistefanovic, rohitpaulk, sarupbanskota, fake-rookie, bauripalash等项目介绍&#xff1a;通过从头开始重新创建你最喜欢的技术来掌握编程。项目star数&#xff1a;310,978项目fork数&…

mysql中between and怎么用

在 MySQL 中&#xff0c;BETWEEN ... AND ... 是一个非常有用的运算符&#xff0c;用于选择介于两个值之间的数据范围。这个运算符可以用于数字、日期和字符串等数据类型。下面是一些具体的用法示例。 ### 基本语法 sql SELECT column_name FROM table_name WHERE column_nam…

【CVPR2024】2024年CVPR的3D 目标检测的综述(还在补充中)

透视单目DETR 2D 透视单目DETR 2D的。对于DETR系列消除了 NMS的2D目标检测,RT-DETR[8]设计了一个高效的混合编码器,通过解耦尺度内交互和跨尺度融合来提高速度。采用不确定性最小查询选择,为解码器提供高质量的初始查询,从而提高准确率。 透视单目3D 透视单目3D。MonoCD…

tensorRT(win系统)环境安装与测试

下载地址&#xff1a;https://developer.nvidia.com/tensorrt 文档地址&#xff1a;https://docs.nvidia.com/deeplearning/tensorrt/support-matrix/index.html 先决条件&#xff1a;英伟达显卡、win操作系统、安装了cuda、安装cudnn、安装vs2020、 注意&#xff1a;看官方文…