C# 如何向循环中添加条件

C# 如何向循环中添加条件,c#,C#,我想检查数组中的一个值,如果它存在,则返回该值,否则返回消息并从数组中读取另一个值。加 else { MessageBox.Show("This Item ID Does Not Exist"); } 但问题是,当值不在数组中时,它希望显示1258038次消息。 如何检查值(输入),如果它存在,我可以继续,如果它在数组中不存在,它将返回并读取另一个值(输入可以是多个必须逐个读取的值) for(int-chun=0;chun

我想检查数组中的一个值,如果它存在,则返回该值,否则返回消息并从数组中读取另一个值。加

 else
    {
      MessageBox.Show("This Item ID Does Not Exist");
    }
但问题是,当值不在数组中时,它希望显示1258038次消息。 如何检查值(输入),如果它存在,我可以继续,如果它在数组中不存在,它将返回并读取另一个值(输入可以是多个必须逐个读取的值)


for(int-chun=0;chun对于(int yyu=0;yyu使用
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");
    
    for(int-chun=0;chun对于(int yyu=0;yyu侧注:请尝试在与其他人共享的代码中使用好的变量名/方法名。
    ii
    yyu
    可能会给人一种不关心代码的印象。我的帖子似乎是无敌的…--可能在这种情况下,当项目id不存在时,消息仍会显示1258038次在数组中..yeap@YohanesKhosiawan许先汉. 它显示1258038次错误。它仍然显示1258038次错误@GrantWinneyThanks@GrantWinney。请您解释一下--int?itemseq=null;因为我将itemseq定义为公共整数,然后我可以更改此变量的名称(int?itemseq=null;)另一件事@GrantWinney?自从我将它定义为itemseq以来。它显示了一个错误,说明这个变量存在于脚本中。我无法理解int之后的?值。
    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");
    
    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");
        }
    
        ...
    }