Нужна помощь о том как правильно создать обобщённый метод, который будет проверять. продолжение в коде

Создайте обобщенный метод IsPositiv, который принимает массив произвольного типа, и возвращает true, если в массиве находятся только положительные элементы, и false – в противном случае. Примените этот метод для массивов типа int и double.

Я не знаю как правильно возвращать TRUE OR FALSE помогите пожалуйста

Код:

using System;

namespace ConsoleApp3
{
    class Program
    {
       
        // Вывод массива произвольного типа
        static bool IsPositiv<T>(T[] array)
        {
            foreach (T element in array)
            {

                for (int i = 0; i < array.Length; i++)
                {
                    if (array[] > 0)
                    {

                        return true;
                        //Console.Write(element + " ");
                        //Console.WriteLine();
                    }
                    else (array[] < 0)
                    {
                        return false;
                    }
                }
            }
        }
        static void Main(string[] args)
        {
            // Создание массивов с элементами int, double и char
            int[] intArray = { -1, 2, 3, 4, 5};
            double[] doubleArray = { 1.1, 2.2, 3.3, 4.4, 5.5};
            // Вызов обобщенного метода с универсальными параметрами разных типов
            IsPositiv<int>(intArray);       // В аргумент передается массив int
            IsPositiv<double>(doubleArray); // В аргумент передается массив double
            Console.ReadLine();
        }
    }
}

Ответы (1 шт):

Автор решения: aepot

С полностью произвольным типом эту задачу выполнить невозможно, требуется установка ограничения.

static bool IsPositive<T>(T[] array) where T : IComparable<T>
{
    foreach (T element in array)
    {
        if (default(T).CompareTo(element) >= 0)
            return false;
    }
    return true;
}

Трюк здесь заключается в том, что default(T) - это 0 для числовых типов.

→ Ссылка