読者です 読者をやめる 読者になる 読者になる

プログラマーな日々

プログラマー兼SEです。好きな習慣:TDD、好きなツール:WorkFlowy、好きな言語:C#、好きなAWSのサービス:Data Pipeline。趣味は開発環境を改善することです。

IEnumerable.Anyメソッド

.NET LINQ

Enumerable.Any(TSource) メソッド (IEnumerable(TSource)) (System.Linq)
シーケンスに要素が含まれているかどうかを判断します。 ...

SQLでは、WHERE〜IN〜に相当します。

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

namespace LinqSample {
    class Program {
        static void Main(string[] args) {
            Execute( 1, 3, 5, 7 );
            Execute( 9, 11, 13, 15, 18);
            Console.ReadKey();
        }

        /// <summary>
        /// 1つでも2で割り切れる要素が存在するとき全ての要素を含みます。
        /// </summary>
        /// <param name="numbers"></param>
        private static void Execute(params int[] numbers) {
            IEnumerable<int> query = from number in numbers
                                        where numbers.Any(i =>i % 2 == 0)
                                        select number;
            foreach (int i in query) {
                Console.WriteLine(i);                    
            }
        }
    }
}

実行結果