如果字符串项不在字符串数组中

时间:2010-08-13 08:10:09

标签: c#

我有一个字符串数组。 我需要根据所选项目是否在数组中显示按钮。 我需要知道如何告诉程序“(array。 NOT Contains(”string“))”。 请任何人帮帮我? 提前致谢

我的代码:

    List<string> activationids = new List<string>();
    foreach (ModuleActivation moduleactivation in activationid)
         activationids.Add(moduleactivation.ActivationID);

    string gvselectActID = GridView1.SelectedRow.Cells[1].Text;

    if (activationids.Contains(gvselectActID))
    {
      activateInsert.Visible = true;
      activateUpdate.Visible = false;
      deactivate.Visible = true;
    }
    else if (activationids."NOT" Contains(gvselectActID))
    {
      activateInsert.Visible = false;
      activateUpdate.Visible = true;
      deactivate.Visible = false;
    }
    else
    {
     activateInsert.Visible = false;
     activateUpdate.Visible = false;
     deactivate.Visible = false;
    }
  } 

6 个答案:

答案 0 :(得分:10)

变化:

else if (activationids."NOT" Contains(gvselectActID)) 

else if (!activationids.Contains(gvselectActID)) 

答案 1 :(得分:6)

甚至更简单

bool containsItem=activationids.Contains(gvselectActID);

activateInsert.Visible = containsItem;
activateUpdate.Visible = !containsItem;
deactivate.Visible = containsItem;

答案 2 :(得分:2)

!表示“不”。所以你必须把它放在你需要否定的表达式前面;

!activationids.Contains("blahblah");

然而,很明显,如果activationids.Contains("blahblah")false,您将进入第二种情况。此外,目前,您的第三个区块(... else { ...)永远不会被击中。

答案 3 :(得分:2)

有两种非常简单的方法可以做到这一点:

  1. 不是bool函数调用的结果:

    if(!activationids.Contains(gvselectActID))

  2. 检查结果并将其与false

    进行比较

    if(activationids.Contains(gvselectActID) == false)


  3. 但是,您正在检查它是否包含在第一个if()子句中,这意味着如果未包含第一个else子句将被触发。没有必要检查,并且第三个else无法被解雇。

答案 4 :(得分:2)

包含返回true或false,你不能有三个分支,你可以只做

if (activationids.Contains(gvselectActID)) // it does contain
  ...
else // it does not contain
  ...

没有其他可能性

[笑话]
那么它可以在这种情况下工作
http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx
[/笑话]

答案 5 :(得分:1)

这就足够了:

if (activationids.Contains(gvselectActID))
{
  // Goes here if condition is true
  activateInsert.Visible = true;
  activateUpdate.Visible = false;
  deactivate.Visible = true;
}
else
{
  // Goes here if condition is false
  activateInsert.Visible = false;
  activateUpdate.Visible = true;
  deactivate.Visible = false;
}

没有其他可能的选择 - 不能有第三个分支。

这没有任何意义:

if(booleanCondition)
{}
else if (!booleanCondition)
{}
else
{}

根据定义,如果booleanCondition为false,则将采用else分支 - 不需要测试它是否为false。