前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >介绍一个不错的轮子:MoreLINQ,原生LINQ增强,尤其适用于数据ETL/数据分析领域。

介绍一个不错的轮子:MoreLINQ,原生LINQ增强,尤其适用于数据ETL/数据分析领域。

作者头像
Excel催化剂
发布2021-08-18 10:37:19
5490
发布2021-08-18 10:37:19
举报
文章被收录于专栏:Excel催化剂

对于一名非专业码农来说,使用轮子就是王道,同时作为一名数据分析方向的业务开发者,不得不承认,人家隔壁的python,许多轮子非常管用,特别是操作数据的pandas。 最近刷到.net有一个MoreLINQ的轮子,对目前LINQ的一些增强,花了几天时间学习了一下,很多惊喜,特别对于一个做数据ETL为多的笔者来说,MoreLINQ太多为此而生的功能。 独乐乐不如众乐乐,在此简单给大家做过引路者,希望更多人可以用上并喜欢它。

MoreLINQ简介

感谢社区的一篇文章,让笔者认识此轮子

Linq 下的扩展方法太少了,您期待的 MoreLinq 来啦

MoreLINQ是对Linq to object的有力补充,国外有本书《Thinking in LINQ》专门花了一章的篇幅介绍了它,它的开发者也是《C# in Depth》作者。

从github的星星和更新时间来看,算是比较热门的一个轮子,并且持续更新。

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 项目

在作者的主页里,有另外一个专门的示例仓库,地址为:https://github.com/morelinq/examples ,里面部分扩展方法是有示例代码,非常遗憾,大多数还是等待追加状态。

没有示例时,只能看描述和轮子的晦涩文档。

  • Mark Heath社区MVP的系列文章

总共25篇文章及视频,详见以下网址:https://markheath.net/category/MoreLINQ

https://www.youtube.com/watch?v=LmeTMUptJPo&list=PLzUdt2T2KyAdVmA681z98tpLQSagXBLdP&ab_channel=MarkHeath

  • 笔者手打的练习代码

笔者通过上述两个资源,自己手打或复杂整理了一些示例代码,用linqpad来一边测试一边学习,算是掌握了一点点。有兴趣的可以下载一起学习。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel催化剂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MoreLINQ简介
  • MoreLINQ是对Linq to object的有力补充,国外有本书《Thinking in LINQ》专门花了一章的篇幅介绍了它,它的开发者也是《C# in Depth》作者。
  • MoreLINQ一些好用的方法功能
  • MoreLINQ的学习资源
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档