Как отобразить наибольшее целое число в массиве, используя метод Find в C#? - PullRequest
0 голосов
/ 26 апреля 2020

Я сделал небольшой массив целых чисел от 1 до 5, и я хочу вывести наибольшее целое число. Я видел много примеров, но ни один не использовал метод Find. Вот так выглядит мой код. Я не знаю, как его финишировать sh.

static void Main()
        {
            int[] arr =  { 1, 2, 3, 4, 5 };

            int result = Array.Find(arr.Max);

            Console.WriteLine(result);
        }

Как это должно выглядеть?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

Так что я думаю, что вы пытаетесь использовать Find for, а не его намерение.

Найти - вернуть результат, если он соответствует заданному предикату. Так что в качестве примера это будет работать следующим образом:

static void Main()
{
    int[] arr =  { 1, 2, 3, 4, 5 };

    // this is just a lambda to check if each number given to it is even, and if so returns true.
    int result = Array.Find(arr, p => p % 2 == 0);

    // "2" gets output as its the first even number it found.
    Console.WriteLine(result);
}

Более подробную информацию можно найти в документации для разработчиков:

https://docs.microsoft.com/en-us/dotnet/api/system.array.find?view=netcore-3.1

0 голосов
/ 26 апреля 2020

Если ваше домашнее задание настаивает на том, что вы используете Array.Find (), попробуйте:

static void Main()
{
    int[] arr = { 1, 2, 3, 4, 5 };

    int result = Array.Find(arr, i => i == arr.Max());

    Console.WriteLine(result);
}

, но оно полностью избыточно.

int result = arr.Max();

более эффективно и разборчиво.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...