C#中的运算符:SQL Server中是否有"IN"运算符?

Joh*_*nes 2 c# operators code-behind

我在C#代码隐藏中得到了这个语句,我正在检查我的变量是否等于特定的数字,如果是,它将处理一些代码:

try
{
    int TaskID = Convert.ToInt32(ddlTask.SelectedValue);

    if (TaskID == 157)
    {
         //lblAccountName.Text = (DT1["CUST_NM"].ToString());
         Label2.Text = (DT1["CUST_NM"].ToString());
         //lblAccountName.Visible = true;
         TBAccountNum.Text = (DT1["CUST_NUM"].ToString());
         TBAccountNum.Visible = true;
     }
}
catch (Exception ae)
{
     Response.Write(ae.Message);
}
Run Code Online (Sandbox Code Playgroud)

工作完美.但是,现在我想在"if"列表中添加一些其他数字.在SQL Server中,它将类似于:

if (TaskID IN (157, 158, 159, 160, 162, 165))
Run Code Online (Sandbox Code Playgroud)

有没有办法在C#中做到这一点?我还在学习,所以如果这有点简单,我道歉.

svi*_*ick 8

您可以与Contains()LINQ 一起使用项目的集合(例如数组):

new[] { 157, 158, 159, 160, 162, 165 }.Contains(TaskID)
Run Code Online (Sandbox Code Playgroud)


Seb*_*Seb 5

写吧 :

if ( new int[]{157, 158, 159, 160, 162, 165}.Contains(TaskID))
    ....
Run Code Online (Sandbox Code Playgroud)

不要忘记添加以下参考:

using System.Linq;
Run Code Online (Sandbox Code Playgroud)

  • 只是FYI,你不需要指定数组的类型,因为它可以被推断(`new [] {...`vs`new int [] {...`). (2认同)