LINQ - 拡張メソッド一覧

提供:MochiuWiki : SUSE, EC, PCB
2019年10月20日 (日) 15:25時点における192.168.1.24による版
ナビゲーションに移動 検索に移動

概要

C#のLINQを種類ごとにまとめて、簡単なサンプルを記述する。

結果の表示に、独自の拡張メソッドToResult(this IEnumerable)を使用している。
このメソッドは、本文の最後に記載する。(サンプルコードのダウンロードはこちら)


要素の取得(単一)

該当の要素がない場合

  • ~OrDefaultが付いていないメソッドは例外をスローする。
  • ~OrDefaultが付いたメソッドは型の規定値を返す。
メソッド名 機能
ElementAt
ElementAtOrDefault
指定した位置(インデックス)にある要素を返す。
First
FirstOrDefault
最初の要素を返す。
Last
LastOrDefault
最後の要素を返す。
Single
SingleOrDefault
唯一の要素を返す。該当する要素が複数ある場合、例外をスローする。


 var source = new[] { 3, 4, 5, 6, 7, 8, 9, 9 };
 
 Console.WriteLine(source.ElementAt(2));
 // → 5
 
 Console.WriteLine(source.ElementAtOrDefault(10));
 // → 0
 
 Console.WriteLine(source.First());
 // → 3
 
 Console.WriteLine(source.First(e => e > 5));
 // → 6
 
 Console.WriteLine(source.Last());
 // → 9
 
 Console.WriteLine(source.Last(e => e < 5));
 // → 4
 
 Console.WriteLine(source.Single());
 // → System.InvalidOperationException: シーケンスに複数の要素が含まれている
 
 Console.WriteLine(source.Single(e => e < 4 ));
 // → 3



要素の取得(複数)

メソッド名 機能
Where 条件を満たす要素をすべて返す。
Distinct 重複を除いたシーケンスを返す。
Skip 先頭から指定された数の要素をスキップし、残りのシーケンスを返す。
SkipWhile 先頭から指定された条件を満たさなくなるまで要素をスキップし、残りのシーケンスを返す。
Take 先頭から指定された数の要素を返す。
TakeWhile 先頭から指定された条件を満たす要素を返す。
 var source = new[] { 3, 4, 5, 6, 7, 8, 9, 9 };
 
 Console.WriteLine(source.Where(e => e > 5).ToResult());
 // → {6, 7, 8, 9, 9}
 
 Console.WriteLine(source.Distinct().ToResult());
 // → {3, 4, 5, 6, 7, 8, 9}
 
 Console.WriteLine(source.Skip(5).ToResult());
 // → {8, 9, 9}
 
 Console.WriteLine(source.SkipWhile(e => e < 5).ToResult());
 // → {5, 6, 7, 8, 9, 9}
 
 Console.WriteLine(source.Take(5).ToResult());
 // → {3, 4, 5, 6, 7}
 
 Console.WriteLine(source.TakeWhile(e => e < 5).ToResult());
 // → {3, 4}