流光年华|MoreLINQ,原生LINQ增强数据ETL/分析领域适用

对于一名非专业码农来说 , 使用轮子就是王道 , 同时作为一名数据分析方向的业务开发者 , 不得不承认 , 人家隔壁的python , 许多轮子非常管用 , 特别是操作数据的pandas 。
最近刷到.net有一个MoreLINQ的轮子 , 对目前LINQ的一些增强 , 花了几天时间学习了一下 , 很多惊喜 , 特别对于一个做数据ETL为多的笔者来说 , MoreLINQ太多为此而生的功能 。
独乐乐不如众乐乐 , 在此简单给大家做过引路者 , 希望更多人可以用上并喜欢它 。
MoreLINQ简介感谢社区的一篇文章 , 让笔者认识此轮子
【流光年华|MoreLINQ,原生LINQ增强数据ETL/分析领域适用】morelinq是对Linq to object的有力补充 , 国外有本书《Thinking in LINQ》专门花了一章的篇幅介绍了它 , 它的开发者也是《C# in Depth》作者 。
从github的星星和更新时间来看 , 算是比较热门的一个轮子 , 并且持续更新 。
流光年华|MoreLINQ,原生LINQ增强数据ETL/分析领域适用MoreLINQ一些好用的方法功能笔者针对数据ETL和数据分析的应用场景中 , 发现了不少的惊喜功能 , 特别是类似SQL里的窗口分析函数的功能 , 尤为喜欢 。 简单列举下比较深刻的几点 。

  • 返回最大值、最小值 , 分组计数等
MaxBy、MinBy、CountBy
  • 集合的排列组合
Permutations(排列), Subset(组合) ,Cartesian (笛卡尔积)
  • 集合的随机抽样
RandomSubset (随机抽取子集) , Shuffle(全集乱序)
  • 集合的LeftJoin/RightJoin/FullJoin
  • 集合的窗口、平移
类似SQL的窗口函数效果 , Window、WindowLeft、WindowRight、Lag/Lead等函数 , 会SQL的窗口函数 , 非常好理解 。
  • 集合的分组
Batch、Segment、
  • 集合转换成表
ToDataTable
  • 表的行列互转
Transpose
  • 序列的创建
Generate、Repeat
MoreLINQ的学习资源
  • 专门的examples 项目
在作者的主页里 , 有另外一个专门的示例仓库 , 地址为:, 里面部分扩展方法是有示例代码 , 非常遗憾 , 大多数还是等待追加状态 。
流光年华|MoreLINQ,原生LINQ增强数据ETL/分析领域适用没有示例时 , 只能看描述和轮子的晦涩文档 。
流光年华|MoreLINQ,原生LINQ增强数据ETL/分析领域适用
  • Mark Heath社区MVP的系列文章
总共25篇文章及视频 , 详见以下网址:
;list=PLzUdt2T2KyAdVmA681z98tpLQSagXBLdP&ab_channel=MarkHeath
  • 笔者手打的练习代码
笔者通过上述两个资源 , 自己手打或复杂整理了一些示例代码 , 用linqpad来一边测试一边学习 , 算是掌握了一点点 。 有兴趣的可以下载一起学习 。
流光年华|MoreLINQ,原生LINQ增强数据ETL/分析领域适用使用linqpad来测试代码 , 真的非常香 , 作者官方Example和本文的笔者的示例代码和linqpad的和谐版 , 一并打包给大家下载 。
后台回复:morelinq , 即可下载 。


    推荐阅读