問題タブ [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.
.net - 動的.NET式での角かっこの使用
ユーザーがコレクションの「フィルター」に入力できるグリッドがあります。ユーザーはいくつかの列に入力する必要があります。
たとえば、Citiesコレクションの場合、次の都市をフィルタリングできます。
「ブラケット」要件が表示されるまで、非常にうまく機能する動的PredicateBuilderを使用しました。
上記の「クエリ」からわかるように、結果のコレクションには、次のような都市が含まれ
(Name.StartsWith'a' AND Population > 10000) OR (Population < 1000)
ます。
式
Name.StartsWith'a' AND (Population > 10000 OR (Population < 1000)
を作成するには、角かっこを使用する必要があります。
これで、フィルターグリッド列が次のように変更されました。
.NET動的式ライブラリに「グループ」、「Open / CloseBracket」はありますか?それを実現する別の方法は?
それらの間の行を「リンク」するコードは次のとおりです。
entity-framework - LinqToEntitiesのカスタム拡張メソッド
Linq-To-Entitiesを使用してSQLServer2008R2データベースにクエリを実行したいと思います。
私はEntityFramework4.1(Code-First)
を使用しており、クエリはエンティティのハッシュ値を次のようにパラメーターと比較する必要があります。
ただし、EFプロバイダー用に定義されたコア拡張メソッドとCLRメソッドしか使用できません。そのため、実行直前にL2Eが理解できるメソッド
に変換しようとしています。HashCode()
参考までに、HashCodeの実装は複雑ではありません。何かのようなもの:
すべてのエンティティを列挙可能として取得し、コード(Linq To Objects)で確認できることはわかっていますが、その方法で取得しようとしているデータの量を考えると、これは大変なことです。
それはまったく実行可能ですか(GetHashCode
メソッドの場合)。もしそうなら、どうすればそれを実装できますか?
ありがとうございました。
c# - Linq - 式の作成式から
述語がありますExpression<Func<T1, bool>>
Expression<Func<T2, bool>>
のT1
プロパティを使用して、述語として使用する必要があります。T2
いくつかのアプローチについて考えようとしましExpression.Invoke
たが、おそらく使用していましたが、理解できませんでした。
参考のため:
と
よろしくお願いします。
c# - このlinq式をメソッド形式に変換するにはどうすればよいですか?
このLINQを変換するにはどうすればよいですか
メソッド形式のLinqで。
それを行うのに役立つツールはありますか?
linq - 拡張メソッドでのLinq式の楽しみ(?)
次のように、ドロップダウンリストにタイトルタグを配置するために多くの時間を使用するHtmlHelper式を作成しました。
...これは水泳で機能しますが、さらに進みたい場合があります。HTMLを書き出さずに、この獣のID、表示、タイトルをカスタマイズしたいと思います。たとえば、次のようなモデルにいくつかのクラスがある場合:
私の見解では、私は次のように書くことができます。
...そして、タイトル属性などの素敵なドロップダウンが表示されます。これは、列挙されたアイテムに、表示したいプロパティが正確に含まれている限り、すばらしいものです。しかし、私が本当にやりたいことは次のようなものです。
...そして、この場合、オプションのtitle属性は、itemName
プロパティとプロパティの連結ですitemDescription
。私はラムダ式のメタレベルを告白し、Linq関数は私を少しめまいにさせました。誰かが私を正しい方向に向けることができますか?
最終結果興味のある人のために、次のコードを使用すると、ラムダ式を使用して、選択リストのID、Title、およびDisplayTextプロパティを完全に制御できます。
linq - LINQ式および一般的なメソッドへの拡張メソッドの変換
次の拡張メソッドがあります。
私はそれをこのように呼ぶことができます
私は今、これを次のようなLinq/Lambda式で使用しようとしています。
実行時に次のエラーが発生します。
LINQ to Entitiesは、メソッド'Boolean Between(System.DateTime、System.DateTime、System.DateTime)'メソッドを認識せず、このメソッドをストア式に変換できません。
しかし、これは問題ありません
呼び出す共通のメソッドが欲しいのですが。私のオプションは何ですか?
html-helper - Html ヘルパー MVC3 の Linq 式からクラス プロパティ値を取得する
オブジェクトを渡す必要がある HTML ヘルパーがあります。このオブジェクトは、ヘルパーでアクセスする必要があるいくつかのプロパティを持つクラスです。このオブジェクトの実際の基底クラスはジェネリック型であるため、Linq 式を使用してオブジェクトに渡すことにしました。
メソッドのシグネチャは次のとおりです。
コントロールの使用方法は次のとおりです。
m.Person からのインスタンス情報が必要です。オブジェクト インスタンスを取得し、式からクラス インスタンスのプロパティにアクセスするにはどうすればよいですか? これを行うより良い方法はありますか?
c# - 変数を使用して式をシリアル化します
System.Linq.Expressions
WCF経由で送信できるように、DataContractsにシリアル化するクラスをいくつか作成しました。それはかなりうまく機能します。問題は、変数を含む式をシリアル化する場合です。問題を説明する例を次に示します。
CASE 2式をシリアル化するのに問題はありませんが、サービス側では解決するものがないため、シリアル化するデータは役に立ちません。value(MyTest+<>c__DisplayClass0).variable
したがって、CASE 2式がCASE1と同じ結果にシリアル化されるように、その式をシリアル化する前に変数を解決する必要があります。
linq-to-sql - 16 以上のパラメータを持つラムダ式 Func
LinqToSQL で使用されるフィルタリング ラムダ式を作成する必要があります。これには、標準の System.Func で提供されるパラメーターの数よりも多くのパラメーターが必要です (この場合、最大数は 16 です)。
どうすればこれを達成できますか?
使用法は次のとおりです。
c# - 三項演算子を使用してLinq式を割り当てることはできません
次のコードを入力しました。
Visual Studioは、のタイプを推測できないと言っていますn
。
コードは私には問題ないように思えます。三項演算子を使用して、2つのExpression
リテラルのうちの1つをExpression
変数に割り当てているだけです。
Visual Studioはn
、三項演算子の内部のタイプを推測するのに十分なほど賢くないのでしょうか、それとも私が何らかの間違いを犯したのでしょうか。