【发布时间】:2016-07-18 22:22:31
【问题描述】:
if 函数有问题。 我有 3 个字符串数组(“orderID”、“id”和“name”)
- orderID 最多包含 10 个订单号。
- id 和 name 是包含几乎所有饮料的数据库。
如果“orderID”与“id”匹配,则将“name”添加到列表中,如果不匹配则添加字符串“Not found in database”。
当前代码:
string x = "Not found in database";
for (int i = 0; i < id.Length; i++)
{
foreach (string ids in orderID)
{
if (ids == id[i])
{
listBox1.Items.Add(name[i]);
listBox2.Items.Add(name[i]);
break;
}
else
{
listBox2.Items.Add(x);
}
}
}
结果如下:
问题:
- 第二个列表 - 当“orderID”与“id”匹配时,“name”被添加到列表中,但不在所需位置。我猜它是按数据库中的位置添加的。如何避免?
- 第三个列表只是重复添加了“else”。否则它没有按预期工作。它正在为所有内容添加“未在数据库中找到”。有什么建议可以解决吗?
【问题讨论】:
-
我不知道 list1 和 list2 代表什么,但有一件事是您可能想要添加到 else 中的两个列表框:
else { listBox1.Items.Add(name[i]); listBox2.Items.Add(x); };那么你的清单会说,“Cofee,Cofee”是第一个,“Jack Daniels,Not Found”是下一个,等等。你可能想也可能不想反转你的for和foreach循环,请记住,break只会跳出最内层的循环,而您的外层会继续运行。
标签: c# arrays list sorting if-statement