首页 > 解决方案 > 如果项目编号不同,如何从 3 个单独的列表框中列出项目?

问题描述

你好!

任务:3 人在 3 家不同的酒店住宿时被谋杀。谋杀不是在同一天发生的。您有来自每家酒店的 3 个列表,其中包含住在那里的人的姓名。如果您发现匹配的名称,请将其列为嫌疑人。

private void button1_Click(object sender, EventArgs e)
{
    int index = 0;
    for (int i = 0; i < n2; i++) //I have 3 different 'n's, n2 is the largest, that is why I use it here (n - listBox1; n2 - listBox2; n3 - listBox3)
    {
        if (Convert.ToString(listBox1.Text[i]) == Convert.ToString(listBox2.Text[i]) || Convert.ToString(listBox1.Text[i]) == Convert.ToString(listBox3.Text[i]) || Convert.ToString(listBox2.Text[i]) == Convert.ToString(listBox3.Text[i]))
        {
            listBox4.Items.Add(goldensheep[index]);
            index++;
        }
    }
}

我有 中列出的所有数据,listBox1目标是。名称可以在数组中找到:“goldensheep”、“goldenbull”、“goldenostrich”,但我在这里只使用了“goldensheep”,因为我相信(d)这是唯一需要的。listBox2listBox3listBox4

当我单击 button1 时,出现错误,但不幸的是我不知道为什么会发生这种情况。

在此先感谢,祝您有美好的一天!:)

标签: c#formswinforms

解决方案


您收到错误是因为listBox1or的最后一个索引listBox3小于 n2。您实际上只比较每个列表的相同索引的项目。

我将addRange()所有三个列表,distinct()它们接收所有可能的名称。遍历这些名称以检查它们是否出现在所有三个列表中。


推荐阅读