我正在尝试查看是否有一种方法可以构建一个 Linq 语句,该语句将根据元素中的可用属性进行选择,结果将是什么,尽管并非所有属性都始终可用。
例如,这将是一个“标准”元素:
<box left="2" right="2" />
但是,这也是完全有效的:
<box left="3" />
还有这个:
<box right="1.4" />
我想做的是有一个 Linq 语句,上面写着“如果左右都存在,则将它们相加并除以 2。如果只存在左边,则使用该值。如果只存在右边,则使用该值。”。我知道这可以通过一系列复杂的 If/Then 语句来完成,但我试图看看这是否可以在 Linq 中完成。
我已经尝试了一些事情,但是在返回值方面遇到了问题 - 如何返回正确的值。例如,以下返回值,但不一定是正确的:
dim center = from e in <box> Where e.@left IsNot Nothing _
AndAlso e.@right IsNot Nothing _
let g = ((CInt(e.@left)+CInt(e.@right)) /2) _
Or _
e.@left IsNot Nothing AndAlso e.@right Is Nothing _
let k = CInt(e.@left)
我尝试过使用 select 语句,但它并不完全有效。关于如何做到这一点的任何想法?