MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
LINQ - 要素の取得のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
LINQ - 要素の取得
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == LINQには、単一または複数の要素を取得するための様々なメソッドが存在する。<br> これらのメソッドは、コレクションから特定の条件に合う要素や位置に基づいた要素を効率的に取得するのに役立つ。<br> <br> 単一の要素を取得するメソッドとしては、First、FirstOrDefault、Single、SingleOrDefault、Last、LastOrDefault等のメソッドがある。<br> Firstメソッドは最初の要素、Lastメソッドは最後の要素を返す。<br> Singleメソッドは唯一の要素を返すが、複数の要素が存在する場合は例外をスローする。<br> <br> これらのメソッドにおいて、サフィックスに"OrDefault"が付加されたメソッド (FirstOrDefaultメソッド等) は、要素が見つからない場合にデフォルト値を返す。<br> <br> ElementAtメソッドは、指定されたインデックスの要素を取得する。<br> ElementAtOrDefaultメソッドは、インデックスが範囲外の場合にデフォルト値を返す。<br> <br> 複数の要素を取得するメソッドには、Where、Take、Skip、TakeWhile、SkipWhile等のメソッドがある。<br> Whereメソッドは条件に一致する全ての要素、Takeメソッドは指定した数の要素を先頭から取得する。<br> <br> Skipメソッドは、指定した数の要素をスキップした後の残りの要素を返す。<br> TakeWhileメソッドおよびSkipWhileメソッドは、条件が真である間要素を取得またはスキップする。<br> <br> これらのメソッドを組み合わせることにより、複雑なデータ取得操作を簡潔に表現することができる。<br> 例えば、WhereメソッドとTakeメソッドを組み合わせて、条件に一致する最初のN個の要素を取得することができる。<br> <br> LINQのこれらのメソッドは、クエリ構文または拡張メソッド構文を使用して呼び出すことができ、コードの可読性と保守性を向上させるのに役立つ。<br> <br><br> == 結果の表示 == ここでは、結果の表示において、独自の拡張メソッドToResult(this IEnumerable)を使用している。<br> <br> <syntaxhighlight lang="c#"> // 結果表示用の拡張メソッド public static String ToResult<TSource>(this IEnumerable<TSource> source) { return "{" + string.Join(", ", source) + "}"; } public static String ToResult<TKey, TSource>(this IEnumerable<IGrouping<TKey, TSource>> source) { return source.Select(group => string.Format("Key={0}, Source={1}", group.Key, group.ToResult())).ToResult(); } </syntaxhighlight> <br><br> == 要素の取得(単一) == 該当の要素がない場合<br> * ~OrDefaultが付いていないメソッドは例外をスローする。<br> * ~OrDefaultが付いたメソッドは型の規定値を返す。<br> <center> {| class="wikitable" | style="background-color:#fefefe;" |- ! style="background-color:#66CCFF;" | メソッド名 ! style="background-color:#66CCFF;" | 機能 |- | ElementAt<br>ElementAtOrDefault || 指定した位置(インデックス)にある要素を返す。 |- | First<br>FirstOrDefault || 最初の要素を返す。 |- | Last<br>LastOrDefault || 最後の要素を返す。 |- | Single<br>SingleOrDefault || 唯一の要素を返す。該当する要素が複数ある場合、例外をスローする。 |} </center> <br> <syntaxhighlight lang="c#"> 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 </syntaxhighlight> <br><br> == 要素の取得(複数) == <center> {| class="wikitable" | style="background-color:#fefefe;" |- ! style="background-color:#66CCFF;" | メソッド名 ! style="background-color:#66CCFF;" | 機能 |- | Where || 条件を満たす要素をすべて返す。 |- | Distinct || 重複を除いたシーケンスを返す。 |- | Skip || 先頭から指定された数の要素をスキップし、残りのシーケンスを返す。 |- | SkipWhile || 先頭から指定された条件を満たさなくなるまで要素をスキップし、残りのシーケンスを返す。 |- | Take || 先頭から指定された数の要素を返す。 |- | TakeWhile || 先頭から指定された条件を満たす要素を返す。 |} </center> <br> <syntaxhighlight lang="c#"> 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} </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:C_Sharp]]
LINQ - 要素の取得
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse