3

メソッドの式パラメーターを拡張して、独自のフィルターを追加したいと考えています。以下のようなことをしようとしていますが、構文が間違っています:

public static IList<MyPage> DoSomething<T>(Expression<Func<T, bool>> predicate)
{
    return DataStore().GetPages().Where(p => p.PublishDate < DateTime.Now && predicate)
}

コンパイラは、次のエラーで Visual Studio 2012 で不平を言っています:

boolエラー 29 演算子 '&&' は型 ' ' および ' System.Linq.Expressions.Expression<System.Func<T,bool>>'のオペランドには適用できません

最初に述語を拡張する方が良い.Where(predicate)でしょうか? どうやってそれをしますか?

4

1 に答える 1

4

.Where(predicate)としてフィードバックする場合は、最初に述語を拡張してからフィードバックする方がよいでしょうか?どのようにそれをしますか?

はい、そしてあなたが正しく提案していることを私が理解していれば、まさにそのようです。あなたはこのように連鎖することができます.Where()

public static IList<MyPage> DoSomething<T>(Expression<Func<T, bool>> predicate)
{
    return DataStore().GetPages().Where(p => p.PublishDate < DateTime.Now).Where(predicate);
}
于 2013-02-23T09:53:21.053 に答える