我正在使用visual studio c#win form。 。 。我有2d文本框数组,我有另一个2d数组的有效解决数独,我想比较文本框的文本到数独数组,但它不工作。这是我的代码:
private void Isvalid()
{
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
if (copy[i, j] == textbox[i, j].Text)
isvalid = true;
}
private void check()
{
Isvalid();
if (isvalid)
MessageBox.Show("NO");
else
MessageBox.Show("YES");
}
任何人都可以帮助我。 。 。 THANx提前。 。 。 谢谢所有回答的人。 。
答案 0 :(得分:1)
我会在
上放一个断点if (copy[i, j] == textbox[i, j].Text)
行并直观地查看您在“文本”框中看到的内容是否是数组包含的内容。 它可能就像需要进行不区分大小写的比较一样简单。
答案 1 :(得分:1)
textbox [i,j] .Text
这里需要在比较之前将文本框矩阵中的值转换为整数。这将解决问题。
此外,您需要将invalid设置为false并使其成为真正的断开循环
答案 2 :(得分:1)
如果数组不相等,则不(重新)将isvalid
变量设置为false。
您通过共享变量传递Isvalid
方法的结果。如果将比较结果作为方法结果传递,则代码将更加清晰。
private bool Isvalid()
{
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (copy[i, j] != textbox[i, j].Text) {
return false; // If one is not equal, the two arrays differ
}
}
}
return true;
}
现在你可以测试:
if (Isvalid()) {
// your code here
}
如果将两个数组作为参数传递,那就更好了。
答案 3 :(得分:0)
试试这个:
private void Isvalid()
{
isvalid = true;
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
if (copy[i, j] != textbox[i, j].Text)
{
isvalid = false;
return;
}
}
在例行程序中,只要一个数字匹配,就会将isvalid设置为true。如果数字不匹配,您宁愿将其设置为false。