Самый простой способ изменить ваш код для обработки этого - создать переменную, которая отслеживает индекс, в котором находится Sandy, инициализировать его недопустимым значением (например, -1
), а затем установить его в фактическое значение в вашем Блок if
(и мы также можем добавить инструкцию break;
для выхода из l oop, как только мы его найдем).
Затем мы выводим строку на основе значения position
variable:
public static void FindSandy(params string[] ocean)
{
int position = -1;
for (int i = 0; i < ocean?.Length; i++)
{
if (ocean[i] == "Sandy")
{
position = i;
break;
}
}
if (position > -1)
{
Console.WriteLine("We found Sandy on position {0}", position);
}
else
{
Console.WriteLine("He was not here");
}
}
Код можно немного упростить с помощью System.Linq
методов расширения Select
(для выбора имени и индекса) и FirstOrDefault
, который возвращает первый элемент, который соответствует условие или значение по умолчанию для типа (null
):
public static void FindSandy(params string[] ocean)
{
var position = ocean?.Select((name, index) => new {name, index})
.FirstOrDefault(item => item.name == "Sandy");
Console.WriteLine(position == null
? "He was not here"
: $"We found Sandy on position {position.index}");
}