TransWikia.com

Problema com o Split() no Mono

Stack Overflow em Português Asked by Ygor Kayan on December 30, 2021

To usando uma plataforma que tem vários exercícios, a Uri Online Judge, e ele corrige automaticamente o resultado da saída do programa, porem é em Mono

Este é meu código:

        string a = Console.ReadLine();

        string[] temp = a.Split(" ");

        List<double> maior = new List<double>();
        maior.Add(double.Parse(temp[0]));
        maior.Add(double.Parse(temp[1]));
        maior.Add(double.Parse(temp[2]));
        maior.Sort();

        Console.WriteLine(maior[2]+ " eh o maior"); 

Em meu PC uso o .NET Core, e funciona sem dar erro, porém quando rodo no sistema da plataforma da esse erro:

Main.cs(10,31): error CS1502: The best overloaded method match for `string.Split(params char[])' has some invalid arguments
/usr/lib/mono/4.5/mscorlib.dll (Location of the symbol related to previous error)
Main.cs(10,37): error CS1503: Argument `#1' cannot convert `string' expression to type `char[]'

Link do site com o exercício.

O Mono do site está na versão: 5.4.0

One Answer

De fato, finalmente há uma nova sobrecarga do método Split() no .NET Core. Finalmente! Por isso sempre o recomendo. Não há no .NET Standard, e por isso não está no Mono ou .NET Framework. Use o que existe.

using static System.Console;
using System.Collections.Generic;

class Program {
    static void Main() {
        string[] temp = ReadLine().Split(new char[] { ' ' });
        var maior = new List<double> {
            double.TryParse(temp[0], out var valido) ? valido : 0,
            double.TryParse(temp[1], out valido) ? valido : 0,
            double.TryParse(temp[2], out valido) ? valido : 0
        };
        maior.Sort();
        WriteLine($" {maior[2]} eh o maior"); 
    }
}

Veja funcionando no ideone. E no .NET Fiddle. Também coloquei no GitHub para referência futura.

Consertei outros problemas do código. Uma das coisas que estes sites tem de ruim é que não avaliam se o código é bom e a pessoa pode acreditar que está fazendo algo maravilhoso quando na verdade está só dando o resultado esperado. Ainda tem outros problemas e eu evitaria o Sort(), prefira outra coisa, como o Max(), o que inclusive permitira eliminar a variável.

Funcionar é diferente de estar certo - Fiat 147 caindo aos pedações circulando pelas ruas

Answered by Maniero on December 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP