首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

.NET 9 中 LINQ 新增的功能

编程知识
2024年09月10日 07:00

LINQ介绍

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

安装.NET 9

需要体验LINQ的新增功能前提是需要安装.NET9环境,.NET 9是.NET 8的继任者,特别侧重于云原生应用和性能。作为标准期限支持 (STS) 版本,它将在 18 个月内受到支持。

验证是否安装成功

dotnet --list-sdks

.NET 9 SDK目前在Visual Studio 2022中不适用

注意:.NET 9 SDK目前在Visual Studio 2022中不适用,所以无法在Visual Studio2022中选择.NET 9 为目标框架。

VS Code中编写ASP.NET Core Web应用

VS Code中创建.NET 9控制台应用

从VS Code中打开终端

运行以下命令:

dotnet new console --framework net9.0 --use-program-main

运行应用

dotnet run

CountBy方法

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

    public static void CountByExample()
    {
            //这里wordCounts是一个字典,包含每个单词及其出现次数的键值对
            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(new char[] { ' ', '.', ',' }, 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}");
        }
    }

输出结果:

参考文章

C#/.NET/.NET Core拾遗补漏

From:https://www.cnblogs.com/Can-daydayup/p/18405683
本文地址: http://www.shuzixingkong.net/article/1881
0评论
提交 加载更多评论
其他文章 单个48TB大小SQL Server数据库备份导致日志文件无法截断
单个48TB大小SQL Server数据库备份导致日志文件无法截断 SQL Server 版本:SQL Server 2019背景在一个48T大小的单数据库环境中,采用简单恢复模式,日志文件大小限制为600G。执行一次完整备份时,耗时超过12小时,导致日志文件无法截断并达到上限,后续事务无法正常写入
单个48TB大小SQL Server数据库备份导致日志文件无法截断 单个48TB大小SQL Server数据库备份导致日志文件无法截断 单个48TB大小SQL Server数据库备份导致日志文件无法截断
.NET 9 的新亮点:AI就绪 ,拥抱她
.NET 9 即将发布 RC1, 今年初.NET 团队在发布.NET 9 Preview 1版本时写了一篇文章《我们对 .NET 9 的愿景》,其中特别提到了对AI的展望 .NET 9,我们致力于让 .NET 开发人员更轻松地将人工智能集成到他们现有的和新的应用程序中。 开发人员将找到用于使用 Op
逆向WeChat(六)
sniff微信小程序mojo数据包,通过嗅探mojo抓包https请求,打开小程序devtools。
逆向WeChat(六) 逆向WeChat(六) 逆向WeChat(六)
【LLM训练系列】从零开始训练大模型之Phi2-mini-Chinese项目解读
一、前言 本文主要是在复现和实践Phi2-mini-Chinese后,简要分析下Phi2-mini-Chinese这个项目,做一个学习实战总结。 原文发布于知乎:https://zhuanlan.zhihu.com/p/718307193,转载请注明出数。 Phi2-mini-Chinese简介 P
【LLM训练系列】从零开始训练大模型之Phi2-mini-Chinese项目解读 【LLM训练系列】从零开始训练大模型之Phi2-mini-Chinese项目解读 【LLM训练系列】从零开始训练大模型之Phi2-mini-Chinese项目解读
WiFi基础(三):802.11ac/ax/be 与 WiFi4、WiFi5、WiFi6、WiFi7
前面我们介绍了 802.11 b/g/n 的一些核心技术和基础概念,本章将介绍目前比较新的 WiFi5 和 WiFi6,以及在今年会发布的 WiFi7。
WiFi基础(三):802.11ac/ax/be 与 WiFi4、WiFi5、WiFi6、WiFi7 WiFi基础(三):802.11ac/ax/be 与 WiFi4、WiFi5、WiFi6、WiFi7 WiFi基础(三):802.11ac/ax/be 与 WiFi4、WiFi5、WiFi6、WiFi7
喜欢干净简洁音乐播放器的朋友看过来
大家好,我是晓凡。 不少程序员小伙伴都喜欢边听音乐边敲代码,尤其在一个嘈杂的环境中,一个好的想法、好的思路可能就因为一瞬间的干扰就没了。 这时,如果耳机一戴上,听着音乐能更好的集中注意力;遇到bug也能临危不乱,想出更好的解决办法; 网易云音乐,算是一个相对简洁、有趣的播放器了。 不过近些年,各种花
喜欢干净简洁音乐播放器的朋友看过来 喜欢干净简洁音乐播放器的朋友看过来 喜欢干净简洁音乐播放器的朋友看过来
军工厂电气工程师到知名互联网公司程序员,我吃饭的家伙有哪些
大家好,我是欧阳。今年刚好是欧阳三十而立之年,虽然没有立起来。这篇文章来聊聊我从一名军工厂电气工程师到某知名互联网公司程序员,这期间我吃饭的家伙都有哪些。 军工厂期间 欧阳大学读的是“电气工程及其自动化专业”,毕业后进入了老家的一个军工厂,成为了一名电气工程师。军工厂的位置是在一个镇上,和“繁华”这
军工厂电气工程师到知名互联网公司程序员,我吃饭的家伙有哪些 军工厂电气工程师到知名互联网公司程序员,我吃饭的家伙有哪些 军工厂电气工程师到知名互联网公司程序员,我吃饭的家伙有哪些
用 SQL 写的俄罗斯方块游戏「GitHub 热点速览」
在开始介绍上周热门开源项目之前,要插播一条开源新闻:Nginx 已正式迁移至 GitHub。 近日,Nginx 官方宣布将 Nginx 开源项目,从 Mercurial 迁移至 GitHub 代码托管平台,并开始接受 PR 形式的贡献、Issues 问题反馈和功能请求等,GitHub 上的 Ngin
用 SQL 写的俄罗斯方块游戏「GitHub 热点速览」 用 SQL 写的俄罗斯方块游戏「GitHub 热点速览」 用 SQL 写的俄罗斯方块游戏「GitHub 热点速览」