Visual C# 2008 Express Editionを入れて、とりあえずFizz Buzzでも書くか、と思って作ったものの、すごくあやしいにおいのぷんぷんする、というよりかなり間違っているものになった気がします。
using System; using System.Linq; namespace Hello2008CS { class Program { static void Main() { var fizzbuzz = Enumerable.Range(1, 20).Select( delegate(int i) { string s; if (i % 5 == 0) s = "fizz"; else s = ""; if (i % 3 == 0) s += "buzz"; if (s.Length == 0) s = i.ToString(); return s; }); foreach (var s in fizzbuzz) { Console.WriteLine(s); } } } } |
なんでしょう、SelectをLispでいうところのmap関数のように捉え、しかもそこへ(ラムダ式ではなく)匿名デリゲートを使っているところが、違和感の元なのでしょうか。
ところで、AB5にもForeachが来るみたいですよ。ついでの扱いで申し訳ないですけど。
スポンサード リンク |
この記事のカテゴリ
- C# ⇒ 無茶でした、すみません