.NET 9 中 LINQ 新增功能實現(xiàn)過程
LINQ 介紹
語言集成查詢 (LINQ) 是一系列直接將查詢功能集成到 C# 語言的技術統(tǒng)稱。 數(shù)據(jù)查詢歷來都表示為簡單的字符串,沒有編譯時類型檢查或 IntelliSense 支持。 此外,需要針對每種類型的數(shù)據(jù)源了解不同的查詢語言:SQL 數(shù)據(jù)庫、XML 文檔、各種 Web 服務等。 借助 LINQ,查詢成為了最高級的語言構造,就像類、方法和事件一樣。
.NET 9 環(huá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這個方法允許開發(fā)者按鍵來聚合集合中的元素,并計算每個鍵的出現(xiàn)次數(shù)。這使得計算某個數(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)計每個單詞出現(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這個方法提供了更強大的聚合功能,開發(fā)者可以定義一個聚合邏輯(如求和、平均值等),并按鍵進行聚合。該方法在需要基于鍵對集合中的元素進行復雜計算時非常有用。
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); } }
輸出結(jié)果:
Index<TSource>(IEnumerable<TSource>)
方法
借助 Index<TSource>(IEnumerable<TSource>)
,可以快速提取可枚舉項的隱式索引。 現(xiàn)在,可以編寫代碼(如以下代碼片段)來自動為集合中的項編制索引。
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
到此這篇關于.NET 9 中 LINQ 新增功能實操的文章就介紹到這了,更多相關.NET 9 LINQ內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
js獲取.aspx頁面里面的服務器控件和.ascx中的服務器控件值
用js獲取.ascx控件中服務器控件值時首先要得到服務器控件的ClientID再加上.ascx頁面里面的服務器空間ID并用"_"連接2009-02-02