对于一名非专业码农来说,使用轮子就是王道,同时作为一名数据分析方向的业务开发者,不得不承认,人家隔壁的python,许多轮子非常管用,特别是操作数据的pandas。
最近刷到.net有一个MoreLINQ的轮子,对目前LINQ的一些增强,花了几天时间学习了一下,很多惊喜,特别对于一个做数据ETL为多的笔者来说,MoreLINQ太多为此而生的功能。
独乐乐不如众乐乐,在此简单给大家做过引路者,希望更多人可以用上并喜欢它。
感谢社区的一篇文章,让笔者认识此轮子
morelinq是对Linq to object的有力补充,国外有本书《Thinking in LINQ》专门花了一章的篇幅介绍了它,它的开发者也是《C# in Depth》作者。
从github的星星和更新时间来看,算是比较热门的一个轮子,并且持续更新。
笔者针对数据ETL和数据分析的应用场景中,发现了不少的惊喜功能,特别是类似SQL里的窗口分析函数的功能,尤为喜欢。简单列举下比较深刻的几点。
MaxBy、MinBy、CountBy
Permutations(排列), Subset(组合), Cartesian (笛卡尔积)
RandomSubset (随机抽取子集),Shuffle(全集乱序)
类似SQL的窗口函数效果,Window、WindowLeft、WindowRight、Lag/Lead等函数,会SQL的窗口函数,非常好理解。
Batch、Segment、
ToDataTable
Transpose
Generate、Repeat
在作者的主页里,有另外一个专门的示例仓库,地址为:https://github.com/morelinq/examples ,里面部分扩展方法是有示例代码,非常遗憾,大多数还是等待追加状态。
没有示例时,只能看描述和轮子的晦涩文档。
总共25篇文章及视频,详见以下网址: https://markheath.net/category/MoreLINQ
https://www.youtube.com/watch?v=LmeTMUptJPo&list=PLzUdt2T2KyAdVmA681z98tpLQSagXBLdP&ab_channel=MarkHeath
笔者通过上述两个资源,自己手打或复杂整理了一些示例代码,用linqpad来一边测试一边学习,算是掌握了一点点。有兴趣的可以下载一起学习。
使用linqpad来测试代码,真的非常香,作者官方Example和本文的笔者的示例代码和linqpad的和谐版,一并打包给大家下载。
后台回复:morelinq,即可下载。
页面更新:2024-04-28
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号