Método genérico para encontrar o máximo em um array

C# Easy generics

Tarefa «Método genérico para encontrar o máximo em um array»

Implemente um método genérico Max<T>, que recebe um array de elementos do tipo T e retorna o elemento máximo. O tipo T deve implementar a interface IComparable<T>. Se o array estiver vazio, o método deve retornar default(T). Dados de entrada: primeiro um número inteiro N (tamanho do array), depois N elementos do mesmo tipo (int ou double). É garantido que todos os elementos são do mesmo tipo.

Formato de Entrada

Um número inteiro N, em seguida N números (int ou double).

Formato de Saída

O valor máximo entre os números inseridos, ou 'null' (string), se o array estiver vazio.

Exemplos

Exemplo 1

ENTRADA
5 3 7 1 9 4
SAÍDA
9

Exemplo 2

ENTRADA
0
SAÍDA
null

Exemplo 3

ENTRADA
3 2.5 1.1 3.8
SAÍDA
3.8

Exemplo 4

ENTRADA
5.0 4.0 6.0 3.0 4.0 5.0
SAÍDA
78.54 31.42 24.00 20.00 6.00 12.00
main.cs