数组2中存在消息说明值并且不存在

时间:2017-12-17 21:20:10

标签: c# arrays if-statement

当我运行此语法时,我的消息框告诉我数组2中存在该值 AND 我收到一条消息,指出该值不存在。

导致两条消息显示的原因是什么?我如何重写以解决这个问题呢?

    string[] Arr1 = new string[] { "Game1", "Game2", "Game3" };
string[] Arr2 = new string[] { "Vid1", "Vid2", "Vid3" };
string[] Arr3 = new string[] { "Con1", "Con2", "Con3" };

string sVal = "Vid1";

if (Arr1.Any(x => x == sVal))
{
    MessageBox.Show("Value Exists in Array 1");
}
if (Arr2.Any(x => x == sVal))
{
    MessageBox.Show("Value Exists in Array 2");
}
if (Arr3.Any(x => x == sVal))
{
    MessageBox.Show("Value Exists in Array 3");
}
else
{
    MessageBox.Show("Value Does Not Exists in Any Array");
}

2 个答案:

答案 0 :(得分:1)

  ___       ___       ___       ___
 /   \     /   \     /   \     /   \     /
/ 0,0 \___/ 0,2 \___/ 0,4 \___/ 0,6 \___/
\     /   \     /   \     /   \     /   \
 \___/ 0,1 \___/ 0,3 \___/ 0,5 \___/ 0,7 \
 /   \     /   \     /   \     /   \     /
/ 1,0 \___/ 1,2 \___/ 1,4 \___/ 1,6 \___/
\     /   \     /   \     /   \     /   \
 \___/ 1,1 \___/ 1,3 \___/ 1,5 \___/ 1,7 \
 /   \     /   \     /   \     /   \     /
/ 2,0 \___/ 2,2 \___/ 2,4 \___/ 2,6 \___/
\     /   \     /   \     /   \     /   \
 \___/ 2,1 \___/ 2,3 \___/ 2,5 \___/ 2,7 \

代码的最后一部分:

string[] Arr1 = new string[] { "Game1", "Game2", "Game3" };
string[] Arr2 = new string[] { "Vid1", "Vid2", "Vid3" };
string[] Arr3 = new string[] { "Con1", "Con2", "Con3" };

string sVal = "Vid1";

bool in1 = Arr1.Contains(sVal);
bool in2 = Arr2.Contains(sVal);
bool in3 = Arr3.Contains(sVal);

if (!in1 && !in2 && !in3)
    MessageBox.Show("Value Does Not Exists in Any Array");
else
{
    if (in1)
        MessageBox.Show("Value Exists in Array 1");

    if (in2)
        MessageBox.Show("Value Exists in Array 2");

    if (in3)
        MessageBox.Show("Value Exists in Array 3");
}

// Output: Value Exists in Array 2

被视为单个if (Arr3.Any(x => x == sVal)) { MessageBox.Show("Value Exists in Array 3"); } else { MessageBox.Show("Value Does Not Exists in Any Array"); } ,其中:

  • 如果在if statement中找到该值,则会显示消息Arr3
  • 否则,如果在"Value Exists in Array 3"中找不到该值,则会显示消息Arr3

由于"Value Does Not Exists in Any Array"不包含Arr3,因此您将始终收到该消息,因为其他两项检查不依赖于最后一项。

答案 1 :(得分:-1)

您未正确加入。除了第一个之外,你需要为其他所有东西写“else if”。 否则只有最后一个if连接到else,而另外两个ifs独立,将打印消息。

如果一个值可以在多个数组中,则应添加一个bool变量,并在其中一个if为true时将其设置为true。