Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# windows phone 7中的if-else条件_C# - Fatal编程技术网

C# windows phone 7中的if-else条件

C# windows phone 7中的if-else条件,c#,C#,我试图做一些类似于C中if-else条件的事情 我下面的代码是检查文本块中的所有文本是否正确,并显示一条显示消息 if ((correctAns.Contains(textBlock1.Text)) && (correctAns.Contains(textBlock2.Text)) && (correctAns.Contains(textBlock3.Text)) && (correctAns.Contains(tex

我试图做一些类似于C中if-else条件的事情

我下面的代码是检查文本块中的所有文本是否正确,并显示一条显示消息

if ((correctAns.Contains(textBlock1.Text)) && 
    (correctAns.Contains(textBlock2.Text)) && 
    (correctAns.Contains(textBlock3.Text)) && 
    (correctAns.Contains(textBlock4.Text)) && 
    (correctAns.Contains(textBlock5.Text)))
  {
      //If it contains the correct answer
      MessageBox.Show("All correct");
  }
我现在要做的是检查文本块中的任何3个文本是否正确,它将显示一个消息框


我应该怎么做呢?

如果你想要任意三个组合,写一个条件块来覆盖所有内容将是非常严格和不灵活的。最好先数一数,然后再核对一下

int count = 0;
if (correctAns.Contains(textBlock1.Text))
    ++count;
if (correctAns.Contains(textBlock2.Text))
    ++count;
if (correctAns.Contains(textBlock3.Text))
    ++count;
if (correctAns.Contains(textBlock4.Text))
    ++count;
if (correctAns.Contains(textBlock5.Text))
    ++count;

if (count >= 3) {
    // Show message.
}
数一数

如果您的代码与整个问题相匹配,这可能是最直截了当的——但是如果文本块的数量增加,您可能需要重新考虑解决方案:

int count = 0;

if (correctAns.Contains(textBlock1.Text)) count++;
if (correctAns.Contains(textBlock2.Text)) count++;
if (correctAns.Contains(textBlock3.Text)) count++;
if (correctAns.Contains(textBlock4.Text)) count++;
if (correctAns.Contains(textBlock5.Text)) count++;

if (count >= 3)
{
   MessageBox.Show("At least 3 correct");
}

将所有文本框放在一个数组中并使用Linq计数可能更容易:

if (textboxes.Where(tb => correctAns.Contains(tb.Text)).Count() >= 3)
{
    // show message
}

通过这种方式,在该复选框中添加或删除文本框要容易得多。

此答案将使在同一类和命名空间中多次处理数据变得容易得多,@Erno最好添加演示,向他展示如何将文本框添加到数组中以防万一:如何将文本框添加到数组中在很大程度上取决于程序的当前结构@ben tan:请随时寻求帮助。说得好,我只是认为一个简短的演示会有所帮助,无论哪种方式,如果他需要,他都会问。@ben tan:没问题,请随时询问任何澄清