Guest User

Untitled

a guest
Dec 20th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.54 KB | None | 0 0
  1. var foo = new int[]{1,1,4,5,6,2,3,3,1,7,2,4,2,3};
  2.  
  3. IEnumerable<int> Bar(IEnumerable<int> seed, IEnumerable<int> currentLevel = null, int? level = null)
  4. {
  5.     currentLevel = currentLevel ?? Enumerable.Empty<int>();
  6.     level = level ?? default(int);
  7.  
  8.     var result = seed
  9.         .OrderBy(_ => _)
  10.         .GroupBy(_ => _)
  11.         .Select(_ => _.Skip(level.Value).Take(1))
  12.         .SelectMany(_ => _);
  13.    
  14.     if (!result.Any())
  15.     {
  16.         return currentLevel;
  17.     }
  18.    
  19.     currentLevel = currentLevel.Concat(result);
  20.    
  21.     return Bar(seed, currentLevel, level + 1); 
  22. }
  23.  
  24. Bar(foo).Dump();
Advertisement
Add Comment
Please, Sign In to add comment