如何比较两个二维数组

发布于 2024-11-04 10:40:45 字数 613 浏览 1 评论 0原文

我正在使用 Visual Studio C# win 形式。 。 。我有 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");

        }

任何人都可以帮助我吗? 。 。 提前致谢。 。 。 感谢所有回答的人。 。 。

i am using visual studio c# win form. . . i have 2d array of textboxes and i have another 2d array of valid solved sudoku i want to compare textbox's text to sudoku array but its not working.Here is my code:

        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");

        }

Can anyone plz help me. . .
THANx in Advance. . .
Thanx to all who answerd. . .

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

扬花落满肩 2024-11-11 10:40:45

如果数组不相等,则不要将 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
}

如果将两个数组作为参数传递,效果会更好。

You do not (re)set the isvalid variable to false, if the arrays are not equal.

You pass the result of the Isvalid method through a shared variable. Your code will be much clearer if you pass the result of the comparison as the method result.

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;
}

Now you can test for:

if (Isvalid()) {
   // your code here
}

Even better will be if you pass the two arrays as arguments.

Spring初心 2024-11-11 10:40:45

我会在该行上放置一个断点

if (copy[i, j] == textbox[i, j].Text)

,并直观地查看您在文本框中看到的内容是否是数组包含的内容。
它可能就像需要进行不区分大小写的比较一样简单。

I would put a breakpoint on the

if (copy[i, j] == textbox[i, j].Text)

line and visually see if what you see in the Text box is what the array contains.
It might be as simple as needing to do a case-insensitive comparison.

墨落画卷 2024-11-11 10:40:45

textbox[i, j].Text

这里需要将文本框矩阵中的值转换为整数后再进行比较。这样问题就解决了。

此外,您还需要将 invalid 设置为 false,并在使其为 true 后跳出循环

textbox[i, j].Text

here you need to convert the values in the textbox matrix to integer before comparing. That will solve the problem.

Also you need to set invalid as false and after making it true break out of loop

七七 2024-11-11 10:40:45

试试这个:

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。

Try this:

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;
            }
}

In your routine, you'd set isvalid to true whenever one number matches. You'd rather need to set it to false if a number doesn't match.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文