C# 像Func一样使用表达式

C# 像Func一样使用表达式,c#,expression,C#,Expression,我需要使用包含源和目标的表达式来获取选择器,比如mapper(我需要它来表示EF) 公共类区域 { public int RegionId{get;set;} 公共字符串RegionName{get;set;} } var country=new List{new Region{RegionId=21,RegionName=“MyRegion”}; 表达式exp=(x=>x.RegionName); 选择(s=>exp(s)); //exp给出编译错误(需要方法名) 有可能得到它吗?想象一下:

我需要使用包含源和目标的表达式来获取选择器,比如mapper(我需要它来表示EF)

公共类区域
{
public int RegionId{get;set;}
公共字符串RegionName{get;set;}
}
var country=new List{new Region{RegionId=21,RegionName=“MyRegion”};
表达式exp=(x=>x.RegionName);
选择(s=>exp(s));
//exp给出编译错误(需要方法名)
有可能得到它吗?

想象一下:

var items = new List<int>();
Expression<Func<int, int>> selector = (x => x);
但这将起作用,因为您正在编译表达式,因此现在可以调用
Func

如果要在
IQueryable
中使用表达式,可以执行以下操作:

items.AsQueryable().Select(x => selector);
// Or simply
items.AsQueryable().Select(selector);
因此,在您的情况下,应该是:

country.Select(exp);

尝试使用国家/地区书写。仅选择(exp)。感谢您的回答,您写的是正确的答案。但是,正如我写的,我需要使用表达式。我有很多艰巨的任务要做,这是这里的简单代码。在我的代码中,我编写了一个表达式,它从Select的“s”中获取RegionName(我的代码如下:class->Car,需要获取Car信息->Select(s=>s.CarOwnerName+“-”+myExpression(s.Model)),其中“myExpression”获取ModelName+MakerName。。我不能把s.CarOwnerName放到我的表达式中,因为在我的代码中,它也是巨大的。有没有可能“像Func一样使用表达式”进行一些额外的选择…?我明白了。请查看并使用图书馆。
selector.Compile()(1);
items.AsQueryable().Select(x => selector);
// Or simply
items.AsQueryable().Select(selector);
country.Select(exp);