在C#中将函数调用分配给匿名字段

时间:2019-04-07 15:46:08

标签: c# linq

我从linq查询返回匿名类型:

select new {
Exists = true,
Code = new Func<string,string>((string param) => {
                                      if (param == "T")
                                          return "Tab";
                                      if (param == "E")
                                          return "Eub";
                                      if (param == "C")
                                          return "GTW";
                                      if (param == "X")
                                          return "XUX";
                                      return "";
}
}

一个错误:

  

带有语句主体的lambda表达式无法转换为表达式树

被扔了,但什么也没告诉我。

问题:如何在不创建新的非匿名函数的情况下处理该问题?

1 个答案:

答案 0 :(得分:0)

为什么使用Func<string,string>

something.Select(x => new {
Exists = true,
Code = x.param == "T" ? "Tab" :
       x.param == "E" ? "Eub" :
       x.param == "C" ? "GTW" :
       x.param == "X" ? "XUX" : ""
});