ltantonov
ltantonov

Reputation: 143

Cannot implicitly convert type string to int

    Console.WriteLine ("Please enter some numbers");
        int sum = 0;
        for(;;)
        {
            string input = Console.ReadLine ();
            if (string.IsNullOrEmpty (input))
            {
                break;
            }
            int inputParsed = int.Parse (input.ToString ());
            int sumParsed = int.Parse (sum.ToString ());
            sum = sum + input; // throws an error here

            Console.WriteLine (sum);

I want my programme to show the sum of all numbers entered by user, by even though I have parsed all the variables needed, it throws an "cannot implicitly convert type 'string' to 'int'" error. What's wrong?

Upvotes: 2

Views: 8019

Answers (4)

Cyral
Cyral

Reputation: 14153

I would rewrite this entirely (Your original error was because you were trying to add a string to an int, and not the parsed input as an int)

Console.WriteLine ("Please enter some numbers");
int sum = 0;

while (true)
{
    int parsedInput = 0;
    string input = Console.ReadLine();
    if (!string.IsNullOrEmpty(input) && int.TryParse(input, out parsedInput))
    {
        sum += parsedInput;
        Console.WriteLine (sum);
    }
    else
    break;
}

Upvotes: 1

Viper
Viper

Reputation: 2236

to check if the input of the user is right i would prefer

int userInput = 0;
if( int.TryParse( input, out userInput ) == false )
{
     break;
}

This is just an advise and not directly a solution to your problem. There are enough answers =)

Upvotes: 4

AD.Net
AD.Net

Reputation: 13399

int inputParsed = int.Parse (input.ToString ());
            //int sumParsed = int.Parse (sum.ToString ());//no need
            sum = sum + inputParsed ; 

Upvotes: 2

aweis
aweis

Reputation: 5606

sum = sum + input; //throws an error here

should be:

sum = sum + inputParsed ;

You are using the original input instead of the parsed value. And you don't need sumParsed because you just keep the total sum in sum and you do no need to cast the int to a string and then parse it back to an integer.

Upvotes: 8

Related Questions