【发布时间】:2017-05-21 16:08:40
【问题描述】:
我有 SumGetters 的 ProductModel 和字典
public class ProductModel
{
public int Id { get; internal set; }
public int Column1 { get; internal set; }
public int Column2 { get; internal set; }
public int Column3 { get; internal set; }
}
private static readonly Dictionary<string, Func<ProductModel, int>> SumGetters = new Dictionary<string, Func<ProductModel, int>>
{
{ "Column1", model => model.Column1},
{ "Column2", model => model.Column2},
{ "Column3", model => model.Column3},
};
我尝试从字符串中获取特定列。
例如。如果字符串是Column1,则得到model=>model.Column1
如何使用表达式树来实现这个功能?
Func<ProductModel, int> sumGetter;
var isGettingSumGetter = SumGetters.TryGetValue(request.Column, out sumGetter);
【问题讨论】:
-
那么,给定一个
"Column1"字符串和一个ProductModel类型,你想要一个model => model.Column1表达式吗? -
@xanatos 是的,你明白了。
标签: c# lambda expression func