[英]Lambda Expression with Generic Type Input as Parameter
I want to make a method accept Expression like this我想让一个方法接受这样的表达式
public class MyClass
{
public void MyMethod( Expression<Func<T> expression)
{}
}
public class FooClass
{
public string Foo { get; set; }
}
MyClass A = new MyClass();
A.MyMethod( (FooClass x) => x.Foo );
How can I implement this?我该如何实施? thank you in advance.
先感谢您。
First of all, what is your goal in implementing such a class?首先,您实现这样一个 class 的目标是什么? What result do you want to return?
你想返回什么结果? Here is an example of how to use it for you
这是一个如何为您使用它的示例
public class MyClass
{
IQueryable<FooClass> myQuery;
public MyClass()
{
myQuery = new List<FooClass>() { new FooClass() { Foo = "foo1"}, new FooClass() { Foo = "foo1" }, new FooClass() { Foo = "foo2" } }.AsQueryable();
}
public IQueryable<FooClass> WhereMethod(Expression<Func<FooClass, bool>> predicate)
{
try
{
return myQuery.Where(predicate);
}
catch
{
return null;
}
}
public IQueryable<TResult> SelectMethod<TResult>(Expression<Func<FooClass, TResult>> predicate)
{
try
{
return myQuery.Select(predicate);
}
catch
{
return null;
}
}
}
public class FooClass
{
public string Foo { get; set; }
}
now use现在使用
MyClass myClass = new MyClass();
var fooList = myClass.WhereMethod(a => a.Foo == "foo1").ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.