写点什么

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

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

关注

评论

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

深度解析大模型:概念、架构与应用价值

木南曌

AI 大模型

[自研开源] MyData v0.7.3 更新日志

LIEN

开源 数据集成 业务融合 API对接 mydata

AI大模型助力:离线生成中英双语字幕

百度开发者中心

人工智能 数字化时代 大模型

牛刀专业低代码开发实战—配件出入库管理

牛刀专业低代码

低代码开发 低代码平台 牛刀低代码 牛刀专业低代码

Java 文件处理完全指南:创建、读取、写入和删除文件详细解析

小万哥

Java 程序人生 编程语言 软件工程 后端开发

低代码助力企业数据资产价值升级

Crabc低代码平台

低代码 数字化 数据服务

基于SkyEye仿真6678处理器:实现国产操作系统ReWorks仿真运行

DevOps和数字孪生

国产操作系统ReWorks SkyEye

Transformer大模型学习导引:光速掌握大模型

鲸品堂

大模型 企业号 3 月 PK 榜

雷龙科技Nand flash芯片试用体验

芯动大师

存储 芯片 Flash

[人脸修复]基于CodeFormer的人脸修复模型配置

alexgaoyh

环境配置 CodeFormer 人脸修复 人脸复原 旧照片修复

Github 每日热榜 2024.03.18

天马行空的大杂烩

程序员 开源软件 最新软件

2023 re:Invent 使用 PartyRock 和 Amazon Bedrock 安全高效构建 AI 应用程序

亚马逊云科技 (Amazon Web Services)

生成式人工智能

科普:嵌入式多核并行仿真

DevOps和数字孪生

仿真建模 多核并行仿真

开源推荐 | 简洁且强大的开源堡垒机OneTerm

37丫37

DevOps 运维 运维自动化 堡垒机 安全审计

第43期 | GPTSecurity周报

云起无垠

arthas火焰图(async-profiler)在云交易中的运用

京东零售技术

后端 效能提升

《Java核心技术·卷 I(原书第11版)》PDF

程序员李木子

何为代码检查服务的门禁级检查

华为云开发者联盟

开发 华为云 华为云开发者联盟 代码检查

基于SkyEye仿真飞腾处理器:运行U-Boot并加载Phytium-FreeRTOS

DevOps和数字孪生

SkyEye 飞腾处理器

北京大学讲座:大模型时代的软件研发:技术、范式与工具

人工智能 华为云

中国滑雪运动趋势洞察2024

易观分析

报告 滑雪

报名最后一天!Farris-Vue前端组件创新挑战赛火热报名中!

inBuilder低代码平台

数据平台“国产替代”掣肘在迁移?奇点云的工业制造实践解读

先锋IT

招个Java工程师,却发现了一个宝藏平台

王磊

Java 面试

AI技术在医疗领域中有哪些改变?

小魏写代码

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