for WPF developers
Home Profile Tips 全記事一覧

Take 拡張メソッドで指定した分だけ先頭から連続した要素を抽出する

(2017/03/14 10:57:48 created.)

Take 拡張メソッドは、指定した数の要素を先頭から順に抽出したシーケンスを生成します。以下にサンプルコードを掲載します。

Program.cs
  1. namespace Tips_Linq
  2. {
  3.     using System;
  4.     using System.Linq;
  5.  
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var numbers = Enumerable.Range(1, 10);
  11.             Console.WriteLine(string.Join(", ", numbers));
  12.             Console.WriteLine("------------");
  13.  
  14.             var numbers2 = numbers.Take(4);
  15.             Console.WriteLine(string.Join(", ", numbers2));
  16.             Console.WriteLine("------------");
  17.  
  18.             var numbers3 = numbers.Take(12);
  19.             Console.WriteLine(string.Join(", ", numbers3));
  20.             Console.WriteLine(numbers3.Count());
  21.  
  22.             Console.ReadKey();
  23.         }
  24.     }
  25. }


サンプルコードでは 1 から 10 までの整数を並べたシーケンスに対して Take 拡張メソッドを使用しています。1 回目は入力引数に 4 を指定しているため、先頭から 4 個の要素を抽出したシーケンスが生成されています。2 回目は入力引数に 12 が指定されていますが、元のシーケンスの要素数は 10 個のため、元のシーケンスと同様のシーケンスが生成されていることがわかります。最後尾になんらかの要素が加えられて指定の要素数になる、というようなことはないため、必ず指定した数と等しい長さのシーケンスが得られるとは限りません。