11

Containsこのコードを使用して生成できる演算子のラムダ式。

表現

Company => Company.Name.Contains("test1")

ソースコード

var method = typeof(string).GetMethod("Contains", new[] { typeof(string) }); 
var startsWithDishExpr = Expression.Call(argLeft, method, argRight);

オペレーターにとっては正常に機能していContainsます。NotContainsオペレーターで動作するようにコードを変更する方法。

ソースコード

var method = typeof(string).GetMethod("NotContains", new[] { typeof(string) }); 
var startsWithDishExpr = Expression.Call(argLeft, method, argRight);

NotContainsオペレーターが働いていません。誰か提案がありますか?

4

1 に答える 1

24

メソッドがないstring.NotContainsため、呼び出されたメソッドへの呼び出しを作成してNotContainsも機能しません。

not簡単な解決策は、演算子とContainsメソッドを組み合わせることです。通常と同じように!x.Contains(y)、 ではなくと書きますx.NotContains(y)

このような式を作成するには、 を使用できますExpression.Not(callExpression)

于 2012-09-17T10:22:51.593 に答える