.NET 9 中 LINQ 新增功能实现过程
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 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 方法
借助 Index,可以快速提取可枚举项的隐式索引。 现在,可以编写代码(如以下代码片段)来自动为集合中的项编制索引。
public static void IndexExample()
{
var lines = new List { "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
到此这篇关于.NET 9 中 LINQ 新增功能实操的文章就介绍到这了,更多相关.NET 9 LINQ内容请搜索科站长以前的文章或继续浏览下面的相关文章希望大家以后多多支持科站长!
栏 目:ASP.NET
下一篇:.NET Core 线程池(ThreadPool)底层原理源码解析
本文地址:https://zz.feitang.co/wangluobiancheng/3289.html
您可能感兴趣的文章


阅读排行
推荐教程
- 07-25在 .NET 中 使用 ANTLR4构建语法分析器的方法
- 07-25ASP.NET中Onclick与OnClientClick遇到的问题
- 07-25ASP.NET Core 模型验证消息的本地化新姿势详解
- 07-25Asp.NET Core WebApi 配置文件详细说明
- 07-25.NET Core 实现缓存的预热的方式
- 03-31详解如何在.NET代码中使用本地部署的Deepseek语言模型
- 07-25.NET根据文件的哈希值筛选重复文件的实现思路
- 07-25Math.NET Numerics 开源数学库安装使用详解
- 07-25.NET 中的深拷贝实现方法详解
- 07-25.NET WPF 可视化树(Visual Tree)详解





