如何在数组中搜索我的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")
}
答案 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,它将退出并且不会打印该消息。 如果在搜索整个数组后,它没有找到,它将打印该消息。
希望它有所帮助。