みなさんこんにちは!ひろぽんです!
最近色々ありまして、Javascript⇒Boorstrap⇒Sass⇒Jqueryといろいろ渡り歩き、最終的にやっぱりC#が面白いとなり、C#をずーーーとやっています。
そこで勉強がてらC#でかの有名なFizzBuzzをやってみようと思いました。
ですが普通にFizzBuzzやってしまうと面白くない。多分5分でやっつけます。
なのでネスト無し。1行でFizzBuzzを表現!という条件のもとやってみたところ。。
10分でクリアしたので、今回はそのコードの全貌を解説していきたいと思います。
目次
FizzBuzz1行のコード
Enumerable.Range(1, 100).ToList().ForEach(num =>Console.WriteLine(num % 5 == 0 && num % 3 == 0 ? "FizzBuzz": num % 5 == 0 ? "Fizz": num % 3 == 0 ? "Buzz": num.ToString()));
可読性無視ですね。。笑
これだとさすがに読みにくいので改行をしてみました。
namespace Linq
{
internal class Program
{
public static void Main(string[] args)
{
Enumerable.Range(1, 100).
ToList().
ForEach(num =>
Console.WriteLine(
num % 5 == 0 && num % 3 == 0 ? "FizzBuzz"
: num % 5 == 0 ? "Fizz"
: num % 3 == 0 ? "Buzz"
: num.ToString()));
}
}
}
Enumerableで1から100までの数字のリストを作って、それに対し、LINQのForeachを回してるって感じですね!
条件部分は三項演算子で書きました。
割とシンプルにできた気がするのは私だけ??
コメント