.NET 9 中 LINQ 新增功能实现过程

打印 上一主题 下一主题

主题 790|帖子 790|积分 2370

本文先容了.NET 9中LINQ新增功能,包括CountBy、AggregateBy和Index方法,并提供了相关代码示例和输出效果,感爱好的朋侪跟随我一起看看吧
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这个方法允许开发者按键来聚合集合中的元素,并计算每个键的出现次数。这使得计算某个数据集中特定元素的频率变得非常简单。
  1.         public static void CountByExample()
  2.         {
  3.             var sourceText = "This is a test text. This is only a test. This is the best. This,This,This";
  4.             // 统计每个单词出现的次数
  5.             KeyValuePair<string, int> mostFrequentWord = sourceText
  6.             .Split([' ', '.', ','], StringSplitOptions.RemoveEmptyEntries)
  7.             .Select(word => word.ToLowerInvariant())
  8.             .CountBy(word => word)
  9.             .MaxBy(pair => pair.Value);
  10.             Console.WriteLine($"最常见的词是:'{mostFrequentWord.Key}' 出现次数: {mostFrequentWord.Value}");
  11.         }
复制代码
输出效果:



AggregateBy方法

AggregateBy这个方法提供了更强盛的聚合功能,开发者可以定义一个聚合逻辑(如求和、平均值等),并按键进行聚合。该方法在需要基于键对集合中的元素进行复杂计算时非常有效。
  1.         public static void AggregateByExample()
  2.         {
  3.             (string id, int score)[] data =
  4.                 [
  5.                 ("0", 88),
  6.                 ("1", 5),
  7.                 ("2", 4),
  8.                 ("1", 10),
  9.                 ("6", 5),
  10.                 ("4", 10),
  11.                 ("6", 25)];
  12.             // aggregatedData 是一个序列,包含按姓名分组并计算总分的元素
  13.             var aggregatedData =
  14.                 data.AggregateBy(
  15.                     keySelector: entry => entry.id,
  16.                     seed: 0,
  17.                     (totalScore, curr) => totalScore + curr.score
  18.                     );
  19.             foreach (var item in aggregatedData)
  20.             {
  21.                 Console.WriteLine(item);
  22.             }
  23.         }
复制代码
 
输出效果:


Index<TSource>(IEnumerable<TSource>) 方法
借助 Index<TSource>(IEnumerable<TSource>),可以快速提取可枚举项的隐式索引。 如今,可以编写代码(如以下代码片段)来自动为集合中的项编制索引。
  1.         public static void IndexExample()
  2.         {
  3.             var lines = new List<string> { "First line", "Second line", "Third line" };
  4.             foreach (var (index, line) in lines.Index())
  5.             {
  6.                 Console.WriteLine($"Line {index + 1}: {line}");
  7.             }
  8.         }
复制代码
 
输出效果:


参考文章
.NET 9 的新增功能 | Microsoft Learn

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表