答えて
だから、そこここで起こってたくさんあるが、内部で始めることができます:
Func<TEntity, bool>
は一般的なもので、どのタイプ、入力を受け取り、デリゲートであるので、我々はちょうどTEntity
それを呼び出します。何の制約もなく、これは何でもかまいませんが、強く型付けされたものです。
アウトレベルはExpression<Func<TEntity, bool>>
です。これは表現ツリーであり、入力を受け取りブールを返すデリゲートとして強く型付けされています。言い換えれば、それは関数を表す式ツリー(コンパイラコースに戻って考える)です。
最後に、最外レベル:TEntity Single(Expression<Func<TEntity, bool>> predicate)
は、式の形で述語関数をとるSingle
と呼ばれるメソッドです。返されるのは、その関数に渡されるのと同じ型です。
本質的には、Single
が式をとり、それをコンパイルして一連のデータに対して実行し、述語式に一致するコレクションの最初のエンティティを返します。
希望すると便利ですか?
expressionこれは、任意の "TEntity"(呼び出し元のコレクションによってこのインスタンスで定義されている)を取得し、boolを返す代理関数を指定するために使用されます。実際には、デリゲートは、ラムダ関数使用して指定されている:あなたの例では
items.Single(i => i.Id == 1);
を、単一の機能は、私はすべての制限を持っていないと信じてTEntityのジェネリックコレクション(に適用される拡張メソッドであります - オブジェクトでなければなりません)。したがって、TEntityの型は、呼び出すコレクションに基づいて推測されます。
マイナーニットを選ぶだけです。実際にラムダ式ではありません。これは、ほとんど常にラムダとして渡される「Delegate」型です。 –
- 1. Cプログラミング - execlp()ヘルプ?
- 2. SDL_TTFについて(Cプログラミング)
- 3. C#の配列構文を使用してオブジェクト指向プログラミング
- 4. Cプログラミング構造
- 5. C#DataTable.Compute()の構文について
- 6. X86のCまたはC++の汎用ARM環境のプログラミング
- 7. プログラミング構文
- 8. プログラミング構文
- 9. 汎用プログラミング言語としてのR
- 10. 現代のC++デザイン汎用プログラミングとデザインパターン応用
- 11. jQuery構文のヘルプ
- 12. MySQLの構文ヘルプ
- 13. ISAPIリライト構文ヘルプ?
- 14. インテル®C++コンパイラー自体の汎用構造
- 15. 文字列をINT Cプログラミングに構文解析します
- 16. PHPプログラミング構文エラー
- 17. 汎用ServerControlの構文ですか?
- 18. 異なるGPL(汎用プログラミング言語)を使用して実装されたDSL(汎用プログラミング言語)
- 19. AVRプログラミング用のSubi構文の理解
- 20. Cで汎用クラスを持つ汎用メソッド
- 21. 異なる汎用パラメータを持つC#汎用戻り型
- 22. 汎用更新トリガーのヘルプが必要
- 23. linqtosqlクラスの汎用リポジトリのヘルプ
- 24. Cプログラミングとデータ構造
- 25. jQueryの構文ヘルプ - フィルムストリップギャラリーコード
- 26. libxml-ruby構文解析ヘルプ
- 27. Rhino Mocks LastCall構文ヘルプ、.NET
- 28. MySQLの構文ヘルプ - 更新
- 29. SQL Selectコマンドの構文ヘルプ
- 30. サブクエリ:ヘルプの正しい構文エラー
あなたの答えは、私が今削除したものよりもはるかに優れていると説明しています。私は自分自身を読もうとすると混乱しました! hehe –
若干の明確化は、FirstがFirstとは違った複数の結果を見つけたら例外をスローすることです。 – MerickOWA