Skip to content

Instantly share code, notes, and snippets.

@Mikescher
Created September 10, 2014 14:05
Show Gist options
  • Save Mikescher/14e866fb49075ab9e385 to your computer and use it in GitHub Desktop.
Save Mikescher/14e866fb49075ab9e385 to your computer and use it in GitHub Desktop.
LINQ - ASCII Circle
Enumerable.Range(0, 100*100)
.Select(p => Tuple.Create(p % 100 - 50, p / 100 - 50))
.Select(p => Tuple.Create(p.Item1, p.Item2/ (8.0/12)))
.Select(p => Math.Sqrt(Math.Pow(p.Item1, 2) + Math.Pow(p.Item2, 2)))
.Select(p => p >= 45)
.Select(p => p ? "#" : " ")
.Select((p, i) => new { x = i, v = p })
.GroupBy(p => p.x / 100)
.Select(p => p.Select(q => q.v).ToList())
.Select(p => p.Aggregate((a, b) => a+b))
.Aggregate((a, b) => a + Environment.NewLine + b)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment