問題タブ [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.

0 投票する
4 に答える
2599 参照

c# - リフレクションを使用して特定のジェネリック オーバーロードを見つけるにはどうすればよいですか?

Expression特定のジェネリック オーバーロード メソッドを呼び出すを作成しようとしています (Enumerable.Average最初のテスト ケースで)。ただし、特定の型のバインディングは実行時までわからないReflectionため、正しいジェネリック メソッドを見つけて作成する必要があります (Expression解析されたテキストから作成されます)。

したがって、実行時にこの特定のオーバーロードを見つけたいことがわかっている場合:

MethodInfoリフレクションを使用してその特定を解決するにはどうすればよいですか?

これまでのところ、次の選択ステートメントがあります。

上記は 3 つのオーバーロードに絞り込みますが、Func<TSource, int>whereを取る特定のオーバーロードを反映して見つけたいと思いますargType == typeof(int)

私は困惑しており、どんな助けも大歓迎です。

0 投票する
2 に答える
753 参照

linq - Linq to Nhibernate クエリの Where(...) 句での関数呼び出しはパフォーマンスに悪影響を及ぼしますか?

linq を使用して nhibernate を実行し、作成中のアプリケーションで IQueryable.Where 関数を使用しています。そして、私を困惑させているExpressionのは、作成して INhibernateQueryable の Where 関数に渡す s がパフォーマンスにどのように影響するかということです。

パフォーマンスの観点から、これらのクエリ式を記述する際に避けるべき落とし穴が何であるかはよくわかりません。次のような関数呼び出しで式を渡すと:

すべてのレコードを取得し、延期された実行が延期されなくなったらすぐにそれらwhere IsBuyOrder = trueの関数を呼び出すつもりですか?CheckVariousProperties

関数呼び出しは LinqToNhibernate のパフォーマンスにどのように影響しますか?

LINQ to Nhibernate クエリ式で避けるべきことは何ですか?

0 投票する
4 に答える
236 参照

c# - LINQ - 返されるレコードを最小限に抑える - これらの式を記述する正しい方法

従業員はサンプル エンティティ タイプです。

これらはレコード (オブジェクト) 全体をプルバックしてからフィルタリングしますか? 行全体が LINQ 式になるようにこれらを記述する最良の方法は何ですか?

0 投票する
2 に答える
1586 参照

.net - WhereNot linq 式

拡張機能「WhereNot」を作成しようとしています

だから私は使用することができます:

ここでの私の目的は、linq 式を学ぶことです。私の問題を解決しません。

私はこの関数を作成しました:

ブールフラグを切り替える方法がわかりません。関数 Negate はそれを行いますか?

vb.net と C# の両方での回答を歓迎します

0 投票する
2 に答える
4729 参照

c# - Linq 式を作成するにはどうすればよいですか? すなわち Func>、経験値>、経験値>>

Validator<T>クラスを作成しています。SelectManyバリデーターが Linq クエリを使用して式を作成し、基になる値が変更された場合でも最終結果を検証できるように、Linq 拡張メソッドを実装しようとしています。

次のテスト コードは、私の意図を示しています。

私は次の質問を見てきました既存のLinq式を作成するにはどうすればよいFunc<T, bool>ですか 式を使用して2つのを一緒に作成する方法を示していますAndが、より機能的な方法で関数を一緒に作成できるようにする必要があります。

たとえば、次の 2 つの式があります。

次のような新しい式を作成したいと思います。

より簡潔に言えば、これらの関数を作成しようとしています:

ジェネラル ケース関数は、任意の関数を作成するために必要に応じて、さまざまな数のジェネリック引数を受け入れるように変更できます。

Stack Overflow (もちろん) と Web を検索しましたが、この問題を解決する例はありません。

Validator<T>クラスの私のコードは以下のとおりです。

私の拡張機能には、取り除きたい厄介なものSelectManyがたくさん含まれています。.Compile().Invoke()

前もって感謝します!

0 投票する
3 に答える
2100 参照

c# - System.Linq.Expression を発行するにはどうすればよいですか?

などを使用してさまざまなFunc<>デリゲートを生成するコードがいくつかあります。後で使用するために、生成された関数をアセンブリにシリアル化できるようにしたいと考えています。過去に私は System.Reflection.Emit でいくつかのことをしましたが、今では Linq Expressions でそのルートに再び行きたくありません。System.Linq.ExpressionsExpression.Lambda<Func<>>.Compile()

Expressionsコンパイルされた式または名前空間から名前空間へのある種のブリッジをシリアル化するメカニズムはありEmitますか?

編集

コンテキストの背景: 私はクエリ エンジンに取り組んでいます (ほとんどの場合、私自身の教育と楽しみのためです)。SQL ステートメントが与えられた場合、それを解析してラムダ関数に変換し、後で (そして繰り返し実行するために) ディスクにシリアル化します。

疑似コードでは、私はこの時点までです:

(ここで、fieldfield1およびfield2T 型のプロパティであり、AおよびBT1 型<T>のプロパティです。また、 の列挙を渡してquery取得し<T1>、クエリ条件に一致する列挙を取得できます。

したがって、コンパイル済みのアセンブリとしてディスクにシリアル化したいので、後でそれを読み込んで、解析およびコンパイルせずにqueryさまざまなセットを評価できます。<T>私は次の行に沿って何かを描いています:

0 投票する
2 に答える
8615 参照

linq - LINQ式> .Contains() と同等

Linq Expressions を使用して .Contains(string) 関数を作成する方法、またはこれを達成するための述語を作成する方法を知っている人はいますか

これに似たものが理想的でしょうか?

0 投票する
2 に答える
2030 参照

c# - LINQ 式を含むメソッドをテスト/モックする必要がありますか?

System.Linq.Expressions.Expression をパラメーターとして受け取るメソッドを持つクラスがあると仮定すると、単体テストにどれだけの価値があるでしょうか?

この種のメソッドの単体テストやモック化は、私にとっては気が遠くなるような経験でした.

次のような任意の式を使用して、このメソッドを単体テストするにはどうすればよいですか

0 投票する
1 に答える
6368 参照

c# - Linq式を使用して辞書アイテムにアクセスするにはどうすればよいですか

文字列インデックスを使用して「プロパティバッグ」スタイルのディクショナリ内のアイテムにアクセスできるLinq式を使用してラムダ式を作成したいと思います。.Net4を使用しています。

上記のテスト方法では、辞書アイテムの値、つまりtestBag["one"]を結果に割り当てたいと思います。渡されたキー文字列を結果に割り当てて、Assign呼び出しを示していることに注意してください。