I'm going to go over a few things in this answer, hopefully it makes them simple enough. Then, at the end, I'm going to go way overboard and significantly over-engineer this programme while still making it shorter.

---

First, let's talk about your input handling (or lack thereof). As programmers, we should strive to be able to gracefully handle any/all input, and do something appropriate as a result. For invalid input, usually we reprompt (sometimes we just gracefully fail), for valid input, we go to the next step.

You assume all input will be valid, which is a huge potential for problematic behavior. What happens if I enter `one` for either number? Bad things, my friend, bad things.

So, let's handle all that gracefully. I wrote a specific portion of a library I have written specifically for input handling, and gracefully doing so.

Basically, you need all three files from [this GitHub folder](https://github.com/EBrown8534/Framework/tree/master/Evbpc.Framework/Utilities/Prompting). You will also need both the bottom files, from [this other GitHub folder](https://github.com/EBrown8534/Framework/tree/master/Evbpc.Framework/Utilities/Logging). You'll want to modify the namespaces to suit your structure. (You may also just download the entire repo, and build `Evbpc.Framework`, which I recommend. All of this is beyond the scope of this answer.)

Next, you'll want to create a `ConsolePrompt` object:

    var prompter = new ConsolePrompt(null);

Once you've done that, you can simply use:

    var validOperations = new[] { "x", "/", "+", "-" };
    var firstNum prompter.Prompt<int>("Enter the first number in your basic equation", PromptOptions.Required);
    var secondNum = prompter.Prompt<int>("Now enter your second number in the basic equation", PromptOptions.Required);
    var operation = prompter.Prompt<string>("Ok now enter your operation (" + string.Join(", ", validOperations) + ")", PromptOptions.Required, validationMethod: x => validOperations.Contains(x));

Now we've done three things here:

1. We validate all the numbers and reprompt the user if the number is invalid.
2. We make sure the user only entered a basic operation for the intended operation.
3. We make a list of valid operations at the beginning, which means if we add one we can do so easily.

---

Next, we'll talk about your conditions. You use an `if` statement for all your operations, but that's unnecessary and creates extra processing in the case that the operation is the last condition. (Each previous `if` is evaluated before it continues to the next.)

Instead, we'll go to a `switch` statement:

    switch (operation)
    {
        case "x":
            answer = firstNum * secondNum;
            break;
        case "/":
            answer = firstNum / secondNum;
            break;
        case "+":
            answer = firstNum + secondNum;
            break;
        case "-":
            answer = firstNum - secondNum;
            break:
    }

By using a `switch` we've made things substantially more clear: our intention is to only evaluate what `operation` is and do something based on it.

---

Next, we'll talk about your output. You repeat certain statements excessively, let's find a better way to do that.

We have `firstNum` and `secondNum`, as well as `operation` and `answer`. So how can we rewrite our `Console.WriteLine` methods to be more dynamic? Well, with the `switch` it's easy, right after the end brace for the `switch` we just write what each value was:

    Console.WriteLine(firstNum + " " + operation + " " + secondNum + " = " + answer);

Boom. We don't need the `Console.WriteLine` in each `switch` (or `if`) block. We just need one at the end.

But there's a better way to write this (with C#6.0, that is):

    Console.WriteLine($"{firstNum} {operation} {secondNum} = {answer}");

Using string interpolation we make it much easier to read what's going on.

---

You also had the idea for a `while` loop in your head to repeat the calculations, so let's do that:

    do
    {
        // All our calculator code
    } while (prompter.Prompt("Enter exit to quit, anything else to continue", PromptOptions.Optional, "", parseResultMethod: x => x.ToLowerInvariant()) != "exit");

And now it will continue until the user types `exit` at that prompt.

---

So, we've improved everything you've got going, but there's still one more improvement we can make: convert all our operations to a dictionary.

What do I mean? Well I'll show you.

    var operations = new Dictionary<string, Func<int, int, int>>
    {
        {"x", (x, y) => x * y },
        {"/", (x, y) => x / y },
        {"+", (x, y) => x + y },
        {"-", (x, y) => x - y }
    };
    var operation = prompter.Prompt<string>("Ok now enter your operation (" + string.Join(", ", operations.Keys) + ")", PromptOptions.Required, null, null, x => operations.Keys.Contains(x));
    var firstNum = prompter.Prompt<int>("Enter the first number in your basic equation", PromptOptions.Required);
    var secondNum = prompter.Prompt<int>("Enter the second number in your basic equation", PromptOptions.Required);
    var answer = operations[operation](firstNum, secondNum);

What did we just do? We just replaced the entire `switch`/`if` blocks, all the manually typing `x, /, +, -`, etc. with a dictionary of string -> function. Where does this benefit us? Simple. I want to add exponential calculation.

Simply add:

    {"^", (x, y) => (int)Math.Pow(x, y)}

to our `operations` dictionary. Now all our prompts and whatnot can support the power function.

This brings up a new issue: you have no support for decimal/double/float numbers. This is really easy to modify, simply replace all our `int` types with `double`.

---

Lastly, as for a bonus to this answer, you can also add alias operations. (What do I mean? Well what if I naturally use `*` instead of `x` for multiplication?)

This is **super** easy:

    // Let's add our alias operations, */x
    operations.Add("*", (x, y) => operations["x"](x, y));

Simply add them after the `var operations` statement.

    var operations = new Dictionary<string, Func<double, double, double>>
    {
        {"x", (x, y) => x * y },
        {"/", (x, y) => x / y },
        {"+", (x, y) => x + y },
        {"-", (x, y) => x - y },
        {"^", (x, y) => Math.Pow(x, y) },
        {"%", (x, y) => x % y }
    };

    // Let's add our alias operations, */x
    operations.Add("*", (x, y) => operations["x"](x, y));

Boom, now you can use `*` instead of `x` for multiplication. (But you can still use `x` as well.)

---

Our entire programme is now down to 29 lines with appropriate whitespace, and supports much more than your original did. (Your original was 44 lines.)

    var prompter = new ConsolePrompt(null);

    Console.WriteLine("Hello, welcome to Alex's basic calculator!");
    Console.ReadLine();

    var operations = new Dictionary<string, Func<double, double, double>>
    {
        {"x", (x, y) => x * y },
        {"/", (x, y) => x / y },
        {"+", (x, y) => x + y },
        {"-", (x, y) => x - y },
        {"^", (x, y) => Math.Pow(x, y) },
        {"%", (x, y) => x % y }
    };

    // Let's add our alias operations, */x
    operations.Add("*", (x, y) => operations["x"](x, y));

    do
    {
        var firstNum = prompter.Prompt<double>("Enter the first number in your basic equation", PromptOptions.Required);
        var secondNum = prompter.Prompt<double>("Enter the second number in your basic equation", PromptOptions.Required);
        var operation = prompter.Prompt<string>("Ok now enter your operation (" + string.Join(", ", operations.Keys) + ")", PromptOptions.Required, null, null, x => operations.Keys.Contains(x));

        var answer = operations[operation](firstNum, secondNum);

        Console.WriteLine($"{firstNum} {operation} {secondNum} = {answer}");
        Console.ReadLine();
    } while (prompter.Prompt("Enter exit to quit, anything else to continue", PromptOptions.Optional, "", parseResultMethod: x => x.ToLowerInvariant()) != "exit");

Pretty cool, eh?

---

All-in-all, very good start. Hopefully you learned a lot from this answer and can apply some of it to future applications. :)