当前位置: 首页 > news >正文

c# List<T>.Aggregate

List<T>.Aggregate 方法的定义:

public TAccumulate Aggregate<TAccumulate>(TAccumulate seed, Func<TAccumulate, T, TAccumulate> func)

参数解析如下:

TAccumulate seed:初始累积值,也是累积的起始值(默认值)。
Func<TAccumulate, T, TAccumulate> func:累积计算的逻辑函数,接受两个参数,第一个参数是当前的累积值,第二个参数是集合中的元素,返回一个新的累积值。

seed:初始累积值是一个空的 List<Dictionary<string, string>>,通过创建实例 new List<Dictionary<string, string>>() 进行初始化。

func:逻辑函数是一个匿名函数,由 (groups, kvp) => { … } 定义。其中,groups 是当前的累积值,对应空列表 List<Dictionary<string, string>>,而 kvp 是集合中的元素,即字典中的键值对。

示例

using System;
using System.Collections.Generic;
using System.Linq;class Program
{static void Main(){Dictionary<string, string> dic = new Dictionary<string, string>{{ "Pn1#", "Value1" },{ "Pn2##", "Value2" },{ "Pn3###", "Value3" },{ "其他键", "其他值" }};List<Dictionary<string, string>> result = dic.Aggregate(new List<Dictionary<string, string>>(), // 初始累积值(groups, kvp) => // 累积计算的逻辑函数{var key = kvp.Key.Replace("#", "");if (key.StartsWith("Pn")){groups.Add(new Dictionary<string, string>{{ key, kvp.Value }});}else if (groups.Count > 0){var lastGroup = groups.Last();lastGroup[key] = kvp.Value;}return groups;});// 输出结果foreach (var group in result){foreach (var kvp in group){Console.WriteLine($"{kvp.Key}: {kvp.Value}");}}}
}

Pn1: Value1
Pn2: Value2
Pn3: Value3
其他键: 其他值

http://www.lryc.cn/news/126200.html

相关文章:

  • 软件测试常用工具总结(测试管理、单元测试、接口测试、自动化测试、性能测试、负载测试等)
  • Hadoop组件
  • jeecg-boot批量导入问题注意事项
  • Django图书商城系统实战开发 - 实现会员管理
  • Kafka如何解决消息丢失的问题
  • 我只记得512天在CSDN的日子
  • pycharm,VSCode 几个好用的插件
  • springboot 使用zookeeper实现分布式ID
  • git cherry-pick
  • 转行软件测试四个月学习,第一次面试经过分享
  • ECS服务器安装docker
  • 高等数学教材啃书汇总重难点(三)微分中值定理与导数的应用
  • 域名列表是什么?
  • 数据库操作不再困难,MyBatis动态Sql标签解析
  • Android 网络编程-网络请求
  • Mac下全选,使用pynput,怎样调用command键?
  • 21款美规奔驰GLS450更换中规高配主机,汉化操作更简单
  • R语言ggplot2 | R语言绘制物种组成面积图(三)
  • 数据统计与可视化的Dash应用程序
  • 解决并发冲突:Java实现MySQL数据锁定策略
  • C++——函数重载及底层原理
  • Ceph入门到精通-Aws Iam(user,role,group,policy,resource)架构图和快速入门
  • 【kubernetes】k8s高可用集群搭建(三主三从)
  • 凸优化基础学习——凸集
  • oracle 19c环境常见问题汇总
  • django实现悲观锁乐观锁
  • vector【2】模拟实现(超详解哦)
  • 金融助贷公司怎么获客——大数据获客
  • Java进阶-Oracle(二十一)(2)
  • SpringCloud实用篇4——MQ RabbitMQ SpringAMQP