2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

高级开源集合库 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:362300
用户头像

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

关注

评论

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

5分钟搞懂NESAS

俞凡

安全 网络 通信

好家伙!GitHub公选“头牌”阿里大牛开源1300页炫彩性能调优手记

Java 性能优化 性能调优

系统清理工具:Cocktail 16.3.3注册激活版

真大的脸盆

Mac Mac 软件 清理工具 清理优化 清理优化软件

D-ONE计划解读|得帆云DeCode持续引领低代码产品演进!

得帆信息

新产品 低代码平台 aPaaS

千亿流量并发治理!Alibaba实战Sentinel笔记,为微服务保驾护航

Java 微服务 sentinel 高并发 流量治理

Spring Boot自动配置原理详解和自定义封装实现starter

Java Spring Boot 自动配置

开源7天Github斩获4.5万Stars!阿里2023版高并发设计实录鲨疯了

程序员小毕

数据库 程序员 面试 高并发 架构师

智慧改变公厕,市政智慧公厕方案解决城市公共厕所难题

光明源智慧厕所

智慧城市

AI Prompt Engineering 提示工程:提升你的创意与效率

kcodez

人工智能 ChatGPT 提示工程

TCP协议中的粘包和半包问题

TCP TCP协议 粘包 半包

从阿里出发看微服务发展!P8架构师手打800页微服务深度解析笔记

Java 架构 微服务

网络IO模型BIO->Select->Epoll多路复用的进化史

Java岗程序员必备学习方向,全会拿45Koffer没问题!

Java你猿哥

Java 面试 面经 Java工程师 春招

肝完阿里最新Java并发编程全优笔记,我成功晋升公司架构组

Java你猿哥

Java 架构师 并发 面经 Java工程师

ChatGPT - SpringBoot Prompting Chain

Marvin

软件开发 ChatGPT

阿里内部一份手打524页《Java中高级核心知识》令人犹如醍醐灌顶

程序知音

Java java面试 java架构 后端技术 Java面试八股文

十年程序老狗手写分布式服务架构:原理、设计与实战

小小怪下士

Java 程序员 分布式 后端

了解5G安全标准,看这一篇就够了

俞凡

安全 网络 通信

前端面试实录HTTP篇

Immerse

https HTTP 前端面试 前端已死

有哪些 python 的在线练习题或编程挑战的网站?

Jackpop

如何优雅地使用 Markdown?

Jackpop

【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(下)

码界西柚

数据结构 算法训练 时间轮算法 时间轮(TimeWheel)

程序员未来是不是会大量失业?

Jackpop

哪个网站的电子书最多?

Jackpop

在Vue中,为什么从 props 中解构变量之后再watch它,无法检测到它的变化?

Lee Chen

JavaScript Vue3

【AIGC未来的发展方向】面向人工智能的第一步,一文告诉你人工智能是什么以及未来的方向分析

码界西柚

人工智能 4月日更 AIGC ChatGPT

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