c# – 您将如何使用SelectMany实现LINQ方法?
这是Eric Lippert says answering a question about monads,但我听说Erik Meijer在其他关于LINQ和Rx的视频中说了这个. (简而言之,Erik Meijer是创建LINQ和Rx的人) 我想知道如何使用SelectMany实现一些最常用的LINQ功能? >哪里 解决方法
要记住的主要方面是SelectMany可以在IEnumerable上运行,并使用能够访问当前项目及其索引的lambda表达式返回一个IEnumerable.所以你可以做的任何事情都可以通过访问当前项或其索引来转换结果:
>决定要保留或丢弃的元素(Where,First,Take,Skip,TakeWhile) 这个简单的例子可以清楚地看出,这些可以很容易地实现: SomeList.SelectMany(x => ShouldBeIncluded(x) ? Enumerable.Repeat(x,1) : Enumerable.Empty<AClass>(); ); 编辑 – Tim Schmelter发表的很棒的link在评论中再次证明,Jon Skeet已经做得很清洁了: return Enumerable.Repeat(x,ShouldBeIncluded(x) ? 1 : 0; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |