Where 拡張メソッドでシーケンスをフィルタリングする
(2017/03/14 11:26:49 created.)
Where 拡張メソッドはシーケンスの要素をフィルタリングし、条件を満たさない要素を除外します。
Program.cs
namespace Tips_Linq
{
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var numbers1 = Enumerable.Range(1, 100);
var numbers2 = numbers1.Where(x => x % 17 == 0);
Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", numbers2));
Console.ReadKey();
}
}
}
上記のサンプルコードでは、1 から 100 までの整数で 17 の倍数のみをフィルタリングしています。Where 拡張メソッドにはインデックス番号を扱うためのオーバーロードも用意されています。
Program.cs
namespace Tips_Linq
{
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var numbers1 = Enumerable.Range(1, 100);
var numbers2 = numbers1.Where((x, i) => (i > 50) && (x % 17 == 0));
Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", numbers2));
Console.ReadKey();
}
}
}
このサンプルコードでは、インデックス番号が 50 より大きい要素のうち 17 の倍数となる要素のみをフィルタリングしています。
Tweet