.NET 9 中 LINQ 新增功能實(shí)現(xiàn)過程
LINQ 介紹
語言集成查詢 (LINQ) 是一系列直接將查詢功能集成到 C# 語言的技術(shù)統(tǒng)稱。 數(shù)據(jù)查詢歷來都表示為簡單的字符串,沒有編譯時(shí)類型檢查或 IntelliSense 支持。 此外,需要針對(duì)每種類型的數(shù)據(jù)源了解不同的查詢語言:SQL 數(shù)據(jù)庫、XML 文檔、各種 Web 服務(wù)等。 借助 LINQ,查詢成為了最高級(jí)的語言構(gòu)造,就像類、方法和事件一樣。
.NET 9 環(huán)境準(zhǔn)備
需要體驗(yàn) .NET 9 中 LINQ 的新增功能前提是需要安裝 .NET 9 環(huán)境,安裝 .NET 9 SDK 并且Visual Studio 2022需要更新至17.12版本。
- 下載.NET 9.0:https://dotnet.microsoft.com/zh-cn/download/dotnet/9.0

CountBy方法
CountBy這個(gè)方法允許開發(fā)者按鍵來聚合集合中的元素,并計(jì)算每個(gè)鍵的出現(xiàn)次數(shù)。這使得計(jì)算某個(gè)數(shù)據(jù)集中特定元素的頻率變得非常簡單。
public static void CountByExample()
{
var sourceText = "This is a test text. This is only a test. This is the best. This,This,This";
// 統(tǒng)計(jì)每個(gè)單詞出現(xiàn)的次數(shù)
KeyValuePair<string, int> mostFrequentWord = sourceText
.Split([' ', '.', ','], StringSplitOptions.RemoveEmptyEntries)
.Select(word => word.ToLowerInvariant())
.CountBy(word => word)
.MaxBy(pair => pair.Value);
Console.WriteLine($"最常見的詞是:'{mostFrequentWord.Key}' 出現(xiàn)次數(shù): {mostFrequentWord.Value}");
}輸出結(jié)果:

AggregateBy方法
AggregateBy這個(gè)方法提供了更強(qiáng)大的聚合功能,開發(fā)者可以定義一個(gè)聚合邏輯(如求和、平均值等),并按鍵進(jìn)行聚合。該方法在需要基于鍵對(duì)集合中的元素進(jìn)行復(fù)雜計(jì)算時(shí)非常有用。
public static void AggregateByExample()
{
(string id, int score)[] data =
[
("0", 88),
("1", 5),
("2", 4),
("1", 10),
("6", 5),
("4", 10),
("6", 25)];
// aggregatedData 是一個(gè)序列,包含按姓名分組并計(jì)算總分的元素
var aggregatedData =
data.AggregateBy(
keySelector: entry => entry.id,
seed: 0,
(totalScore, curr) => totalScore + curr.score
);
foreach (var item in aggregatedData)
{
Console.WriteLine(item);
}
}輸出結(jié)果:

Index<TSource>(IEnumerable<TSource>) 方法
借助 Index<TSource>(IEnumerable<TSource>),可以快速提取可枚舉項(xiàng)的隱式索引。 現(xiàn)在,可以編寫代碼(如以下代碼片段)來自動(dòng)為集合中的項(xiàng)編制索引。
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}");
}
}輸出結(jié)果:

參考文章
https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-9/overview#linq
到此這篇關(guān)于.NET 9 中 LINQ 新增功能實(shí)操的文章就介紹到這了,更多相關(guān).NET 9 LINQ內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- asp.net使用LINQ to SQL連接數(shù)據(jù)庫及SQL操作語句用法分析
- asp.net中一個(gè)linq分頁實(shí)現(xiàn)代碼
- asp.net中通過ALinq讓Mysql操作變得如此簡單
- asp.net 根據(jù)漢字的拼音首字母搜索數(shù)據(jù)庫(附 LINQ 調(diào)用方法)
- asp.net Linq to Xml學(xué)習(xí)筆記
- asp.net LINQ中數(shù)據(jù)庫連接字符串的問題
- asp.net Linq TO Sql 分頁方法
- asp.net Linq To Xml上手Descendants、Elements遍歷節(jié)點(diǎn)
相關(guān)文章
設(shè)置默認(rèn)Ajax操作cache and error
設(shè)置默認(rèn)Ajax操作cache and error,需要的朋友可以參考一下2013-02-02
深入本機(jī)影像生成器(Ngen.exe)工具使用方法詳解
本篇文章是對(duì)本機(jī)影像生成器(Ngen.exe)工具使用方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
Asp.net 時(shí)間操作基類(支持短日期,長日期,時(shí)間差)
支持短日期,長日期,時(shí)間差的操作基類,方便大家直接使用2008-11-11
詳解c# .net core 下的網(wǎng)絡(luò)請(qǐng)求
本篇文章主要介紹了詳解c# .net core 下的網(wǎng)絡(luò)請(qǐng)求,大致介紹下在.net core 下如何進(jìn)行http請(qǐng)求,主要仍然是GET和POST方法,有興趣的可以了解下2017-05-05
js獲取.aspx頁面里面的服務(wù)器控件和.ascx中的服務(wù)器控件值
用js獲取.ascx控件中服務(wù)器控件值時(shí)首先要得到服務(wù)器控件的ClientID再加上.ascx頁面里面的服務(wù)器空間ID并用"_"連接2009-02-02

