前几天与客户沟通一个项目,客户对其中某个模块提了一个需求。

把从数据库中取出的对物品的统计重新拆分重新统计。鉴于用文字不能清除的表达需求,我将该需求画出来,便于理解。

需求如下图:

就是A,B,C D,四种不同的物品原来是组合统计的,现将其拆分开来各自统计。

我刚开始想着是:通过SQL语句,进行逻辑处理,完成该项需求,想了半天,不得要领。

后来看到导师运用:Dictionary<TKey,TValue>完美将这个需求实现,我受益颇深,故总结其思路,给大家呈现出来。

废话不多说了,开始解决:

1.执行查询语句,从数据库中取出数据,返回 OracleDataReader

OracleDataReader odr = (此处为从数据库中获取数据的代码,省略)。

2.定义两个Dictionary(string,int)集合

Dictionary<string,int> dicSrc = new Dictionary<string,int>();//用来存储原集合

Dictionary<string,int> dicParse = new Dictionary<string,int>();//用来存储目标集合

3.逻辑实现

while(odr.Read())

{

//将原数据表中的物品,数量取出,按键值对放入到集合dicSrc中

dicSrc.Add(ord["物品"].ToString(),int.Parse(odr["数量"].ToString()));

}

odr.Close();

foreach(KeyValuePair<string,int> dic in dicSrc)//循环原集合

{

  string[] thickness = dic.Key.Split(new char[] {'+'});拆解集合项,并放入到字符串集合,如A+B=>A,B

  foreach (string str in thickness)//循环字符串集合

{

    if(dicParse.Keys.Contains(str))//获取的物品已存在目标集合中

    {

    //更新物品数量 = 原数量 + 新添加的数量

    dicParse[str] = dicParse[str] + dic.value

    }

else

{

//将键值对的值加入到目标集合中

    dicParse.Add(str,dic.Value);

    

    }

}

}

经过以上处理,便可将原数据整理成为客户所需求的数据(dicParse)。

以上方法只是核心代码,其他代码不做陈述,望各位看官理解。希望这个思想能帮到大家。

知识点滴:

KeyValuePair 和 Dictionary 的关系
1、KeyValuePair 
a、KeyValuePair 是一个结构体(struct);
b、KeyValuePair 只包含一个Key、Value的键值对。
2、Dictionary 
a、Dictionary 可以简单的看作是KeyValuePair 的集合;
b、Dictionary 可以包含多个Key、Value的键值对。

转载于:https://www.cnblogs.com/txqx/p/8487747.html

巧用DictionaryTKey,TValue,完成客户需求相关推荐

  1. 利用SAP FR高效预测客户需求

    利用SAP F&R高效预测客户需求 SAP F&R的精确预测功能可以提供客户需求的信息,这使得灵活的协调供需成为可能.这是事实,而非来自估计和经验. 预测客户需求是零售业面临的最大挑战 ...

  2. 客户需求分析8个维度_CRM准确数据分析,把控客户需求

    在大数据时代,CRM逐渐被企业认同并成为企业管理的重要工具.CRM在销售和管理上,有着无可比拟的优势,它借助大数据的发展潮流,让数据的智能分析成为可能. CRM无疑是企业有效的销售工具,为企业做出准确 ...

  3. 项目管理中的客户需求变更时需求分析和解决方法

    一.令人烦恼的需求变更 作为一个软件项目经理,在项目开发进行中,你是否遇到过这样的问题:客户的一个电话,就推翻了之前你与客户.与你自己的开发团队,经过再三讨论而确认定下来的需求.之后你就重新开始了和客 ...

  4. 微信小程序现实问题之低素质客户需求问题

    ·微信小程序已经在市场摸爬滚打很久了,但是真正是否可用以及是否真正满足客户需求,市场是否真正到了火热的程度,值得怀疑. 根据本人从事小程序开发的经验,短时间内,小程序市场依然会不温不火,而此时客户的满 ...

  5. UCloud裴志伟:最小价值模型,技术迭代与客户需求可以达成平衡

    LiveVideoStack有幸采访了UCloud互联网事业部产品中心总监裴志伟,采访中裴总介绍了UCloud核心产品Rome的前世今生,就网络加速的现状和行业需求进行了深入探讨,表明了对技术和行业的 ...

  6. 企业是否应该实现对客户需求的快速响应_如何做好企业服务?

    2018 年,企业级服务仍处于高速增长时期. 经过几年的市场洗礼后,企业级服务的市场格局正在逐步明朗.无论是垂直型还是通用型的企业级服务厂商,公司发展核心问题主要围绕客户满意度.产品成熟度.企业健康度 ...

  7. 2021年客户需求的新变化,带来了对程序员能力要求的新高度

    2021年已经来到了,回顾过去的一年,可以感受到从国家到企业.大到生产制造小到个人生活,对IT行业给予的期望和要求都比以往任何一年来得要高.要迫切.虽然还是通过编码完成客户的需求,但是对从事IT行业人 ...

  8. 企业是否应该实现对客户需求的快速响应_为什么说数据中台是企业数字化转型的基石?...

    要回答这个问题,我们先看企业数字化转型的内涵到底是什么? 数字化转型后企业应实现以下四个目标: 一.实现真正扁平化的高效决策 通过数字化.智能化的模型支持,提升业务决策精度和效率,从而把决策权赋予更小 ...

  9. 大哥你需求里说只要工作流引擎组件,怎么真正需要的东西这么.悲剧了,客户需求无止境...

    大哥你需求里说只要工作流引擎组件[行政审批流程组件],怎么真正需要的东西这么....悲剧了,客户需求无止境 最近有个广东的大客户,需要一个工作流引擎,主要用户单位内部的行政审批系统,单位要进行无纸化办 ...

  10. 在X++中使用IoC/DI模式应对不断变化的客户需求

    IoC/DI(Inverse of Control/Dependency Injection,控制反转/依赖注入)模式是一种企业级架构模式,通过将应用程序控制权反转交移给框架,并以构造器注入.属性设置 ...

最新文章

  1. 【SSM框架系列】SpringMVC的文件上传、拦截器及异常处理
  2. 【机器学习算法-python实现】PCA 主成分分析、降维
  3. Hadoop-MapReduce 入门
  4. linux设置时间为24小时制,设置时区
  5. 下列描述中 哪些符合java语言的特征_coreJavaBasic试题带答案
  6. jQuery常用语法笔记
  7. adb工具的下载及配置
  8. LibFetion v0.2.0版发布
  9. 开源H5盲盒商城源码系统4.0-vue+TP5php框架开发开源网站
  10. matlab保存m文件是什么意思,在Matlab中怎样把一个程序保存为一个.m文件
  11. 简述计算机病毒的传播4种途径,4计算机病毒的传播途径.ppt
  12. MySQL获取汉字的拼音首字母并过滤字母符号数字
  13. web.xml不同版本的头
  14. 搭建安卓打包环境,用官方示例anysdk生成apk运行
  15. 《使用IEC61499为控制系统建模》-第一章 概述
  16. 敏捷管理 -- 时间和成本管理
  17. 2022支付宝集五福 生肖卡添福红包活动攻略
  18. 自动化攻击背景下的过去、现在与未来
  19. 电磁场知识回顾——重要方程,定理
  20. input onchange事件

热门文章

  1. Java面向对象----抽象类
  2. Riemann映射定理
  3. [转]OOPC:Object-Oriented Programming in C
  4. 关于java加壳和代码混淆
  5. 服务器租用的6大安全知识分析
  6. C++ traits学习笔记(一)
  7. [Linux]磁盘端口I/O
  8. python自然语言理解_python自然语言处理——1.5 自动理解自然语言
  9. feathers mysql_Go 语言操作 MySQL 之 CURD 操作
  10. 动态修改服务器配置文件,asp.net(c#)动态修改webservice的地址和端口(动态修改配置文件)...