1

私はFunc<Message, bool>どこに私Messageのクラスがあります。

を構築し、LambdaコンパイルしてFunc<Message,bool>

public static Func<Classes.Message, bool> GetPredicate(string expression)
{
    Func<Classes.Message, bool> result = null;

    try
    {
        ParameterExpression parameter = Expression.Parameter(typeof(Classes.Message), "Message");
        var lambda = DynamicExpression.ParseLambda(new[] { parameter }, null, expression);
        result = lambda.Compile() as Func<Classes.Message, bool>;
    }
    catch (Exception e)
    {
        _log.Fatal(e);
    }

    return result;
}

これにより、

Message => (((Message.ContainsProperty("Gender") == True) AndAlso (Message.GetPropertyValue("Gender") != "Female")) AndAlso (Message.ChannelString != "FacebookComment"))

後でFunc実行されますが、大文字と小文字を区別しないようにしたいので、メッセージオブジェクトが渡されても性別が「女性」ではなく「女性」であっても、ブール値で true を返します。

それは可能ですか?

ありがとう

4

2 に答える 2

1

ToUpper()を使用します。

Message.GetPropertyValue("Gender").ToUpper() != "FEMALE"
于 2013-05-03T09:30:48.197 に答える