【发布时间】:2020-03-23 20:42:02
【问题描述】:
这实际上只是一个语法/格式问题。
目前我有这个说法,
Where(x =>
x.AddPower != null || x.BaseCurve != null || x.Power != null || x.Axis != null ||
x.ColorName != null || x.Cylinder != null || x.Diameter != null)
在我没有 7 个“或”条件的情况下,有没有更好的方法来编写这个?在这些特定属性中至少有一个不为空的地方?我正在迭代的对象有一些我不关心的,所以我只需要检查这些。
【问题讨论】:
-
这能回答你的问题吗? Check if any property of class is null你可以试试这个方案或者添加一个方法来输入,代表
x变量 -
如果这是 Linq to Sql 那么你所拥有的就是“最好”的方法。
-
@PavelAnikhouski 我不这么认为,因为我只需要确保其中一个不为空,并且只有这些特定属性。对象上有一些我不在乎它们是否为空。
-
为什么要用总是比较晦涩的东西来代替水晶般清晰的代码?您可以为这些属性添加属性并通过反射找到它们,但请问,为什么?
-
向类添加一个布尔属性,并将逻辑移到那里。仍然会有 7 次检查,但类本身会隐藏该细节。
标签: c# linq select foreach where-clause