在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

高级开源集合库 Power Collections

  • 2007-09-13
  • 本文字数:1054 字

    阅读完需:约 3 分钟

近日,Wintellect’s 在 CodePlex 上发布了最新版本的 Power Collections 。虽然.NET Framework 似乎已经提供了很丰富的集合类型,但在开发中总会碰到定制集合类型的需要,其中原因在于集合类型的适用场景太过丰富:

  • 用于层间的数据传递;
  • 用于和数据层(无论是 DAL 还是 DSL 之类各种概念命名的逻辑数据和数据访问部分)的信息提取;
  • 用于算法中对象的聚合(或组合);
  • 用于 UI 部分的数据绑定;
  • 用于缓冲必要的参数信息、配置信息、应用上下文信息;
  • 用于集中调用的 DTO(Data Transfer Object)对象;
  • ……

由于集合类型的适用情景非常丰富,而且往往对性能和集合容量有很多不可预期的处理需求,因此 System.Collections 及其子命名空间提供的类型往往在开发中的一些关键技术环节显得捉襟见肘了,例如下列情形:

  • 需要存在冗余数据项的集合类型(Dirty Set);
  • 需要多键值依赖的字典类型;
  • 为了迭代和遍历方便,需要具有排序能力的集合类型(Ordered Set);
  • 访问上,需要只读特性的集合类型;
  • 为了迎合联合索引的特点,应用需要 3 键值、甚至更多数量键值的 KeyValuePair 来保存数据集;
  • 此外,开发中除了需要集合类型抛出必要的异常外,往往还希望可以抛出委托或者事件,用于运行时数据检查或内容校验;
  • 需要在内存中保存特别大数量的集合;
  • ……

Power Collections 对上述需要给了一个很精彩的答案,而且都是泛型的。它从“根”上实现了自己的集合类型,排序、只读属性、克隆、序列化、取并集(Union)、求交集(Intesection)等都是从自己实现的集合基类中完成的。相对 System.Colletions 而言,Power Collections 的类型基本上不仅仅是“一堆”数据,还包括了非常多的计算方法,而且很多计算支持对一组对象的批量的处理,因此从性能上也有了不小的提升。

随着各种可视化建模工具、开发工具的出现,很多时候,应用的开发人员生疏了对数据结构的使用,.NET Framework 虽然丰富但仅仅是个框架,各种流行的.NET 开源框架也几乎都是服务于功能性扩展部分的。但每个应用,尤其对企业而言的关键性大型应用而言,总要有那么几个技术的“坎”,算法处理上的集合类型也经常算一个。Power Collections 虽然解决的仅仅是一个“比较小”的问题,但较之其他框架而言,他更基础、更普适一些。即便它的功能覆盖也不可能满足所有应用的需要,不过它的“底子”好,起码定制更复杂集合类型的时候,Power Collections 不失为一个很好的范本。

不仅如此,对于.NET 开发人员而言,反射、多线程、进程间远程访问、Networking、异步调用、动态代码生成等开发技术领域其实也一直在期待“挺好用”的开源框架。

2007-09-13 03:362361
用户头像

发布了 61 篇内容, 共 14.8 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

程序员如何解决中年危机?我的阿里春招之路分享,顺利通过阿里Android岗面试

欢喜学安卓

android 程序员 面试 移动开发

闭嘴,别再问什么是锁了

程序员老猫

乐观锁 悲观锁 分布式锁 java锁 公平锁

架构师训练营第 1 期 week13 总结

张建亮

极客大学架构师训练营

复盘node项目中遇到的13+常见问题和解决方案

徐小夕

Java node.js 大前端 nodejs

技术选型背后的国家利益:区块链自主化道路的交锋

CECBC

科技

完美!凭借这份阿里大佬分享的4170页Java高手真经笔记!offer拿到手软

Java~~~

Java 程序员 编程语言 电子书 架构资料

全球最火的程序员学习路线!2020年GitHub上那些优秀Android开源库总结,吊打面试官系列!

欢喜学安卓

android 程序员 面试 移动开发

生产环境全链路压测建设历程12:通过生产压测发现的问题摘录

数列科技杨德华

全链路压测

星环科技自动特征工程论文被ICA3PP2020接收

星环科技

AI 数据集

Kafka实战宝典:Kafka的控制器controller详解

数据社

kafka 七日更

对于传统供热系统来说,转型智慧供热需要哪些条件?

一只数据鲸鱼

物联网 数据可视化 供暖系统 3D

架构师训练营第 1 期第 13 周作业

业哥

工业区块链正在改变什么?

CECBC

环保

网易区块链打造可信数字身份认证应用新场景,赋能科技峰会

CECBC

数字身份

警务通APP系统开发,移动警务平台搭建解决方案

t13823115967

智慧城市

微软最强 Python 自动化工具开源了!不用写一行代码!

星安果

Python 开源 自动化 工具 高效率

直播报名 | 携程技术沙龙——前端测试技术创新与实践

携程技术中心

AI 数据分析

架构之书:我们从何处来?我们是谁?我们向何处去?

lidaobing

架构 编程的未来

阅站无数!不过我只推荐下面这些

苹果看辽宁体育

推荐 网站

甲方日常 70

句子

工作 随笔杂谈 日常

架构师 3 期 3 班 -week4- 总结

zbest

总结 week4

【智简联接,万物互联】华为云·云享专家董昕:Serverless和微服务下, IoT的变革蓄势待发

华为云开发者联盟

Serverless 物联网 IoT

波场链智能合约软件系统开发|波场链智能合约APP开发

系统开发

QoS简介

re:Invent 重磅回顾 | AWS 重塑机器学习的四大亮点,触及每一位 AI 工作者

亚马逊云科技 (Amazon Web Services)

云计算 AWS

TeamLeader不可不知的三种团队建设形式

Alan

团队管理 个人成长 28天写作

Rancher开源Harvester:基于K8S的超融合基础架构软件

Rancher

Kubernetes rancher

测开之数据类型· 第3篇《列表推导式、字典推导式、2种方式创建生成器》

清菡软件测试

测试开发

安全管理 | 前后端方案详解:Vue/SpringBoot+SpringSecurity+JWT

梁龙先森

大前端 springboot springsecurity JWT 七日更

架构师训练营第 1 期 week13

张建亮

极客大学架构师训练营

利用Python进行数据分析(原书第2版)免费下载

计算机与AI

Python 数据分析 数据科学

高级开源集合库Power Collections_.NET_王翔_InfoQ精选文章