1

アプリケーションで WF のルール エンジンを使用していますが、一部の条件では、条件のコレクションを検索する必要があります。次のようなことをするのが理想的です:

this.CollectionObject.Select(x => x.WantedProperty == searchValue).Count() > 0

残念ながら、コレクションの Linq 拡張機能にアクセスできないようです。param forSystem.Data.Linqを渡そうとしましたが、Linq メソッドが表示されませんでした。TypeProviderRuleSetDialog

どんな助けやアイデアも大歓迎です!

4

2 に答える 2

2

私はWFの経験がないので、私の答えはこれまでにWebで見たものにのみ基づいています。このブログ投稿をチェックすることをお勧めします。

ルールセットエディターの問題は、ラムダ式を使用できないことです。彼らはまだ.NET開発ツールの世界で一級市民ではありません。たとえば、イミディエイトウィンドウもそれらをコンパイルしません。

私が知る限り、この問題に対するすぐに使える解決策はありませんが、これは私には問題ないように見えます。

すべてのLINQコードスタイルアイテムを、[条件]ウィンドウからアクセスできるプロパティまたはメソッドに配置します。素晴らしい答えではありませんが、それはバインドで機能します。

次のようなプロパティを定義することをお勧めします

public bool HasAnyBeatlesAlbums {
    get {
        return this.MusicLibrary.Any (cd => cd.Artist == "Beatles");
    }
}

次に、このプロパティをセット式で使用します。また、 Anyはすべての要素を列挙する必要がないため、シーケンスが空でないかどうかを確認するには、 Any拡張メソッドを使用することをお勧めします。

それがあなたのために働くことを私に知らせてください。

于 2010-09-28T16:57:48.837 に答える
-1

Lambda構文の代わりにQuery構文を使用すると、拡張機能にアクセスできました。

元:From x in CollectionObject select etc...

編集:画像を追加

代替テキスト

于 2010-09-28T16:44:18.920 に答える