我想检查数组中的值,如果存在则返回值else返回消息并从数组中读取另一个值。添加
else
{
MessageBox.Show("This Item ID Does Not Exist");
}
但问题是当该值不在数组中时,它希望显示消息1258038次。 我如何检查值(输入),如果它存在,我可以继续,如果它不存在于数组中,它返回并读取另一个值(输入可以是几个必须逐个读取的值)
for (int cun = 0; cun < ItemIdNumber.Length; cun++)
{
int Item_Id = Convert.ToInt32(ItemIdNumber[cun]);
for (int yyu = 0; yyu <= 1258038; yyu++)
{
int weer = c[yyu];
if (weer == Item_Id)
{
itemseq = yyu;
}
else
{
MessageBox.Show("This Item ID Does Not Exist");
}
}
float[] i_ff = b[itemseq];
for (int ii = 0; ii < i_ff.Length; ii++)
{
.......
答案 0 :(得分:2)
使用break
提前离开循环。您还需要稍微更改逻辑,这样您就不会在每次迭代中显示消息。这只是一种可能性:
int? itemseq = null;
for (...) // outer loop
{
...
for (...) // inner loop
{
if (weer == Item_Id)
{
itemseq = yyu;
break;
}
}
if (!itemseq.HasValue)
MessageBox.Show("This Item ID Does Not Exist");
...
}
我想通过一些思考,你可以让它更具可读性。
ItemIdNumber
和c
。ItemIdNumber
中与c
的前1258038值中的项匹配的第一个值。可能会有类似LINQ
语句的内容,但我不确定您的收藏品的类型。我正在写这个,所以它可能无法按原样编译。应该给你一些合作的东西。
var id = (from id in ItemIdNumber
join cid in c.Take(1258038) on Convert.ToInt32(id) equals cid
select cid).FirstOrDefault();
if (!id.HasValue)
MessageBox.Show("This Item ID Does Not Exist");
答案 1 :(得分:0)
for (int cun = 0; cun < ItemIdNumber.Length; cun++) {
...
boolean found = false;
for (int yyu = 0; yyu <= 1258038; yyu++) {
int weer = c[yyu];
if (weer == Item_Id)
{
itemseq = yyu;
found = true;
break;
}
}
if(!found) {
MessageBox.Show("This Item ID Does Not Exist");
}
...
}