集中力なら売り切れたよ

プログラミングや、将棋などについて書きます。

RubyとC#のLINQとの比較、3の倍数を抜き出すプログラム

3の倍数と3のつく数字のときオモロー!というプログラム(FizzBuzz問題系)

Rubyで書くと非常に楽です(自分が慣れているからでもありますが)。

# coding: cp932
result = (1..40).select do |i|
  i % 3 == 0 || i.to_s.include?("3")
end
for i in result
  puts "#{i}:オモロー!"
end

C#LINQやクエリ構文の使い方を調べて書くと似たような書き方ができました。データ型はvarで宣言しても問題なくコンパイルできるんですが、まだC#に慣れてないのでちゃんと型宣言しようと思います。

using System;
using System.Collections.Generic;
using System.Linq;

public class Program
{
    public static void Main(string[] args)
    {
        IEnumerable<int> result = Enumerable.Range(1, 40)
            .Where(n => n % 3 == 0 || n.ToString().Contains("3"));
        foreach (int i in result) {
            Console.WriteLine("{0}:オモロー!", i);
        }
    }
}

実行結果

3:オモロー!
6:オモロー!
9:オモロー!
12:オモロー!
13:オモロー!
15:オモロー!
(以下略)