简单的LINQ和/或查询条件说明

时间:2012-11-15 17:05:16

标签: c# linq

这是一个非常简单的LINQ和/或问题。

在以下查询摘录中,我的目的是获取符合以下三个条件中的任何一个的记录。

我的逻辑是正确的还是有更好的方式来表达这个?

  • (t2.Username == userName)&& (viewMode == 1)
  • (t1.Owner == userName)&& (viewMode == 1)
  • (viewMode == 2)

查询摘录

where
((t2.Username == userName) && (viewMode == 1)) ||
((t1.Owner == userName) && (viewMode == 1)) || 
((viewMode == 2))

2 个答案:

答案 0 :(得分:2)

这样可以更有效地获得相同的结果:

viewMode == 2 ||
(viewMode == 1 && (t2.Username == userName || t1.Owner == userName))

答案 1 :(得分:2)

你的逻辑看起来很好,你当然可以略有不同:

where ( (viewMode == 1 && ( t2.Username == userName || t1.Owner == userName ))
   || viewMode == 2) 

我猜你的眼睛哪个好看!