如何通过显示一条消息来搜索数组

时间:2014-03-27 01:41:58

标签: c# arrays

如何在数组中搜索我的ID,如果找到我的ID,请将其保存在userseq中。如果找不到,只返回一条消息(Messagebox.Show("Does not exist"))表示所有数组的单元格(我的意思是在完成搜索shows only one message之后)。

for (int yu = 0; yu <= 92161; yu++)
 {
   int wer = d[yu];
   if (wer == sc)
     {
       userseq = yu;
     }
 }

P.S:我之前尝试过

int? userseq=null;
...........
(!userseq.HasValue)
{
Messagebox.Show("Does not exist")
}

2 个答案:

答案 0 :(得分:0)

您可以使用LINQ:

int? foundId = arr.FirstOrDefault(a => a == userseq);
if (!foundId.HasValue) 
{
    Messagebox.Show("Does not exist!");
}

其中“arr”是数组,“userseq”是您要比较的ID。

请确保包含System.Linq。您可能需要先将数组转换为列表。如果是这样,只需在“.FirstOrDefault”之前添加“.ToList()”

更多示例:http://www.dotnetperls.com/firstordefault

编辑:上面假设它是一个Int?数组。其他,如果它是一个Ints数组,FirstOrDefault将返回0。

int foundId;
if (!arr.Any(a => a == userseq) 
{
    Messagebox.Show("Does not exist!");
}
else
   foundId = arr.FirstOrDefault(a => a == userseq);

更多“任何”示例:http://www.dotnetperls.com/any

答案 1 :(得分:0)

我会做以下

    int yu = 0;
    while (yu <= 92161)
    {
        if (d[yu] == sc)
        {
            userseq = yu;
            break;
        }
        yu++;
    }
    if (yu > 92161)
       MessageBox.Show("Does not exist")

这样,如果找到了id,它将退出并且不会打印该消息。 如果在搜索整个数组后,它没有找到,它将打印该消息。

希望它有所帮助。