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

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

需求如下图:

就是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. Git复习(一)之简介、安装、集中式和分布式
  2. 通用的Java hashCode重写方案
  3. PHPCMS V9.3.2用户注册模板中的一个低级Bug
  4. pipline中替换tag变量
  5. 句子相似度--余弦相似度算法的实现
  6. 【牛客 - 551E】CSL 的魔法(贪心,思维,STLmap,分块)
  7. HaspMap 多线程下 resize 死循环
  8. Queue.ArrayBlockQueue
  9. java 注解(annotation)基础学习
  10. 深度学习实践与部署(开篇)
  11. 在 Mac 上如何使用鼠标键来控制指针?
  12. Lucene创建索引和搜索索引
  13. python识别图片文字
  14. python列表append方法_Python列表append()方法
  15. python爬虫去重_Python网络爬虫(7):URL去重
  16. 可能是最强的Python可视化神器,建议一试
  17. 数学之美:数学究竟是如何深入我们的生活
  18. 基因工程-3-基因工程载体
  19. 沟通修炼 I型沟通-U型沟通
  20. Linux之搭建chrony时钟同步服务

热门文章

  1. 005-垃圾收集算法
  2. Error connecting to database: No such file or directory
  3. Ubuntu 携手初创企业用代码开拓物联网
  4. 动态设置control的显示与隐藏
  5. sap gui java_不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧
  6. ZeroMQ -- 四种模型简介
  7. vsftpd安装配置_vsftpd上传文件大小为0(主动模式)
  8. async spring 默认线程池_springboot中@Async默认线程池导致OOM问题
  9. 三菱mode bus tcp通讯_微服务中的异步消息通讯和事件驱动,你了解多少?
  10. 【渝粤题库】陕西师范大学290001 计算机网络