【发布时间】:2016-07-20 22:19:26
【问题描述】:
使用 linq,我正在尝试实现以下逻辑-
Iqueryable.Select(q=> new {
if a then q.field1,q.field2,q.field3
else if b then q.field1, q.field4
else q.field5,q.field6,q.field7,q.field8
});
有什么好的方法可以做到这一点吗?
【问题讨论】:
-
你想动态改变表达式的返回类型? This may be the essence of the answer,但是当你完成时,这将是一个非常冗长的 linq 表达式。
-
你只能通过返回一个动态来做到这一点。匿名类型是类型安全的。你正在做的不是。我可能有一些代码给你,但它正在工作。我根据字符串输入动态创建匿名类型。但这一切都在工作,我有一个假期:)
-
@S.Akbari 不起作用
-
@Michael 听起来不错,很想看看
-
发现了类似的东西here。也许你可以以某种方式使用它。否则,我会在大约两周后恢复工作时与您联系。