問題タブ [linq-expressions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - リフレクションを使用して特定のジェネリック オーバーロードを見つけるにはどうすればよいですか?
Expression
特定のジェネリック オーバーロード メソッドを呼び出すを作成しようとしています (Enumerable.Average
最初のテスト ケースで)。ただし、特定の型のバインディングは実行時までわからないReflection
ため、正しいジェネリック メソッドを見つけて作成する必要があります (Expression
解析されたテキストから作成されます)。
したがって、実行時にこの特定のオーバーロードを見つけたいことがわかっている場合:
MethodInfo
リフレクションを使用してその特定を解決するにはどうすればよいですか?
これまでのところ、次の選択ステートメントがあります。
上記は 3 つのオーバーロードに絞り込みますが、Func<TSource, int>
whereを取る特定のオーバーロードを反映して見つけたいと思いますargType == typeof(int)
。
私は困惑しており、どんな助けも大歓迎です。
linq - Linq to Nhibernate クエリの Where(...) 句での関数呼び出しはパフォーマンスに悪影響を及ぼしますか?
linq を使用して nhibernate を実行し、作成中のアプリケーションで IQueryable.Where 関数を使用しています。そして、私を困惑させているExpression
のは、作成して INhibernateQueryable の Where 関数に渡す s がパフォーマンスにどのように影響するかということです。
パフォーマンスの観点から、これらのクエリ式を記述する際に避けるべき落とし穴が何であるかはよくわかりません。次のような関数呼び出しで式を渡すと:
すべてのレコードを取得し、延期された実行が延期されなくなったらすぐにそれらwhere IsBuyOrder = true
の関数を呼び出すつもりですか?CheckVariousProperties
関数呼び出しは LinqToNhibernate のパフォーマンスにどのように影響しますか?
LINQ to Nhibernate クエリ式で避けるべきことは何ですか?
c# - LINQ - 返されるレコードを最小限に抑える - これらの式を記述する正しい方法
従業員はサンプル エンティティ タイプです。
これらはレコード (オブジェクト) 全体をプルバックしてからフィルタリングしますか? 行全体が LINQ 式になるようにこれらを記述する最良の方法は何ですか?
.net - WhereNot linq 式
拡張機能「WhereNot」を作成しようとしています
だから私は使用することができます:
ここでの私の目的は、linq 式を学ぶことです。私の問題を解決しません。
私はこの関数を作成しました:
ブールフラグを切り替える方法がわかりません。関数 Negate はそれを行いますか?
vb.net と C# の両方での回答を歓迎します
c# - Linq 式を作成するにはどうすればよいですか? すなわち Func>、経験値>、経験値>>
Validator<T>
クラスを作成しています。SelectMany
バリデーターが Linq クエリを使用して式を作成し、基になる値が変更された場合でも最終結果を検証できるように、Linq 拡張メソッドを実装しようとしています。
次のテスト コードは、私の意図を示しています。
私は次の質問を見てきました既存のLinq式を作成するにはどうすればよいFunc<T, bool>
ですか 式を使用して2つのを一緒に作成する方法を示していますAnd
が、より機能的な方法で関数を一緒に作成できるようにする必要があります。
たとえば、次の 2 つの式があります。
次のような新しい式を作成したいと思います。
より簡潔に言えば、これらの関数を作成しようとしています:
ジェネラル ケース関数は、任意の関数を作成するために必要に応じて、さまざまな数のジェネリック引数を受け入れるように変更できます。
Stack Overflow (もちろん) と Web を検索しましたが、この問題を解決する例はありません。
Validator<T>
クラスの私のコードは以下のとおりです。
私の拡張機能には、取り除きたい厄介なものSelectMany
がたくさん含まれています。.Compile().Invoke()
前もって感謝します!
c# - System.Linq.Expression を発行するにはどうすればよいですか?
などを使用してさまざまなFunc<>
デリゲートを生成するコードがいくつかあります。後で使用するために、生成された関数をアセンブリにシリアル化できるようにしたいと考えています。過去に私は System.Reflection.Emit でいくつかのことをしましたが、今では Linq Expressions でそのルートに再び行きたくありません。System.Linq.Expressions
Expression.Lambda<Func<>>.Compile()
Expressions
コンパイルされた式または名前空間から名前空間へのある種のブリッジをシリアル化するメカニズムはありEmit
ますか?
編集
コンテキストの背景: 私はクエリ エンジンに取り組んでいます (ほとんどの場合、私自身の教育と楽しみのためです)。SQL ステートメントが与えられた場合、それを解析してラムダ関数に変換し、後で (そして繰り返し実行するために) ディスクにシリアル化します。
疑似コードでは、私はこの時点までです:
(ここで、field、field1およびfield2はT 型のプロパティであり、AおよびBはT1 型<T>
のプロパティです。また、 の列挙を渡してquery
取得し<T1>
、クエリ条件に一致する列挙を取得できます。
したがって、コンパイル済みのアセンブリとしてディスクにシリアル化したいので、後でそれを読み込んで、解析およびコンパイルせずにquery
さまざまなセットを評価できます。<T>
私は次の行に沿って何かを描いています:
linq - LINQ式> .Contains() と同等
Linq Expressions を使用して .Contains(string) 関数を作成する方法、またはこれを達成するための述語を作成する方法を知っている人はいますか
これに似たものが理想的でしょうか?
c# - LINQ 式を含むメソッドをテスト/モックする必要がありますか?
System.Linq.Expressions.Expression をパラメーターとして受け取るメソッドを持つクラスがあると仮定すると、単体テストにどれだけの価値があるでしょうか?
この種のメソッドの単体テストやモック化は、私にとっては気が遠くなるような経験でした.
次のような任意の式を使用して、このメソッドを単体テストするにはどうすればよいですか
c# - Linq式を使用して辞書アイテムにアクセスするにはどうすればよいですか
文字列インデックスを使用して「プロパティバッグ」スタイルのディクショナリ内のアイテムにアクセスできるLinq式を使用してラムダ式を作成したいと思います。.Net4を使用しています。
上記のテスト方法では、辞書アイテムの値、つまりtestBag["one"]を結果に割り当てたいと思います。渡されたキー文字列を結果に割り当てて、Assign呼び出しを示していることに注意してください。