我有一个字符串数组。 我需要根据所选项目是否在数组中显示按钮。 我需要知道如何告诉程序“(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;
}
}
答案 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)
有两种非常简单的方法可以做到这一点:
不是bool
函数调用的结果:
if(!activationids.Contains(gvselectActID))
检查结果并将其与false
if(activationids.Contains(gvselectActID) == false)
但是,您正在检查它是否包含在第一个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。