挑战:C#Foreach - 之前,之后,偶数,奇数,最后,第一

Oma*_*mar 9 c# foreach

由于C#没有前,后,后,第一等作为其foreach的一部分.挑战是使用以下标准尽可能优雅地模仿这种行为:

  1. 必须允许:之前,之后,偶数,奇数,最后,事件之后
  2. 在#1中列出的事件期间,给出一个选项执行/不执行主函数(在集合的所有对象上执行的函数)

如果你能超过上述标准,那就别随便做!

我将在下面发布我的答案,但它不优雅也不可行,所以我想看看社区可以想到什么.

对于循环的硬编码有时令人烦恼=(

Mar*_*ell 16

LINQ ...

  • 之后:( .SkipWhile(predicate)左边模糊,因为你的意思不明确)
  • 之前:( .TakeWhile(predicate)左边模糊,因为你的意思不明确)
  • 持续: .Last()
  • 第一: .First()
  • 奇: .Where((x,i)=>i%2==1)
  • 甚至: .Where((x,i)=>i%2==0)