Самый простой способ получить эту работу - переключиться на for
l oop
for(int i = 0; i < ocean.Length; i++)
{
if (ocean[i] == "Nemo")
{
Console.WriteLine("We found Nemo on position {0}!", i);
return;
}
}
Console.WriteLine("He was not here");
В качестве альтернативы вы можете отслеживать индекс в foreach
int index = 0;
foreach(string fish in ocean)
{
if (fish == "Nemo")
{
Console.WriteLine("We found Nemo on position {0}!", index);
return;
}
index++;
}
Console.WriteLine("He was not here");
Или вы можете вообще избежать l oop и использовать Array.IndexOf
. Возвращает -1, если значение не найдено.
int index = Array.IndexOf(ocean, "Nemo");
if(index >= 0)
Console.WriteLine("We found Nemo on position {0}!", index);
else
Console.WriteLine("He was not here");
А вот решение Linq
var match = ocean.Select((x, i) => new { Value = x, Index = i })
.FirstOrDefault(x => x.Value == "Nemo");
if(match != null)
Console.WriteLine("We found Nemo on position {0}!", match.Index);
else
Console.WriteLine("He was not here");