LINQ to SQL中有什么in和not in等于什么 ?
例如
select * from table in ( ...)
and
select * from table not in (..)
Run Code Online (Sandbox Code Playgroud)
什么等于LINQ to SQL中的上述语句?
这不是一个特定的问题,而是一个长期存在于我脑海中的一般性问题
我必须检查一个变量,如果它包含字符串列表中的值
例如
status == "Open" || status =="Active" || status =="Reopen" || status = "InActive" etc..
Run Code Online (Sandbox Code Playgroud)
在SQL中,编写这种语句非常容易
选择*来自票证的状态("打开","活动","重新打开","活动")
我想我们在C#中没有这么简单的陈述?
有没有人知道像SQL这样的简单方法来编写这种语句而不使用if else,foreach循环或LINQ等泛型类型.
我知道LINQ在那里,但它仍然不像sql的IN那么简单
假设我有一个如果是这样的话:
if(condition1 != asd && menu != menu1 && menu != menu2)
Run Code Online (Sandbox Code Playgroud)
这可以缩短为:
if(condition1 != asd && menu != (menu1 && menu2))
Run Code Online (Sandbox Code Playgroud)
我尝试围绕第二个条件围绕它不应该的两个条件,并围绕整个事情,但它不通过编译器.
是否有可能以这种方式缩短第二个条件?或者有更好的方法吗?
PS.我不知道该怎么称呼它,所以随时编辑标题.
我肯定答案是肯定的,但我很好奇,并且以为我会问你的女朋友.
在SQL中你可以说:
IF ( a IN ( x, y ) )
Run Code Online (Sandbox Code Playgroud)
C#中有类似的东西吗?我知道你可以使用一个开关,但我正在寻找if语句中特别可能的东西,因为有多个表达式,如:
IF ( a == b && c IN ( x, y ) )
IF ( a == b && c == ( x || y ) )
Run Code Online (Sandbox Code Playgroud)
编辑:好的,我看到我过于简单,因为数组示例相当明显,我没有想到它.如果它是更复杂的东西怎么样:
if ( a.GetType() == typeof( MyClass1 ) || a.GetType() == typeof( MyClass2 ) )
Run Code Online (Sandbox Code Playgroud)
Edit2:只是为了澄清,这不是一个C#IN运算符的副本吗?因为这个问题的答案并没有解决我的问题,因为我使用的例子可能有点差,但这是我当时唯一能想到的关系.Palani Kumar提供的答案就是我正在寻找的答案.
编辑3:感谢所有人的称重.很明显,有很多方法可以达到相同的结果(我现在也明白,它们几乎是同样的东西,只是表达方式不同)而且我已经能够阅读了由于您的意见,进一步进入每一个.我也设法找到这个"如果语句匹配多个值"的帖子,是的,我完全同意它也是我所要求的重复.根据反馈,我不仅学到了很多东西,还设法实现了一个优雅的解决方案:
public static bool In<T>( this T obj, params T[] list )
{
return list.Contains( obj …Run Code Online (Sandbox Code Playgroud)