Project Euler: Find 10.001st prime
As mentioned in the comments, you should go for more readable code:

1) Split by responsibility:

One method for user input:

ulong GetPrimeIndex() { // TODO: Get User input from Console }


The algorithm itself: 

ulong FindNthPrime(ulong n) { // TODO: the algorithm }


print the result...

public static void Main(string[] args)
{ 
  ulong primeIndex = GetPrimeIndex();

  Stopwatch watch = Stopwatch.StartNew();
  ulong nthPrime = FindNthPrime(primeIndex);
  watch.Stop();

  Console.WriteLine($"{primeIndex} prime is: {nthPrime}");
  Console.WriteLine($"Elapsed time: {watch.ElapsedMilliseconds}");
}


2) Naming:

In C# local variable names use camelCase: largestprime should be largestPrime



Because primes are always  positive, you should use ulong instead of long. It will give you a broader range to operate in.



I think you're missing a couple of breaks in these tests:


                if (primearray[x] * primearray[x] &gt; potentialprime)
                     break;
                if (prime &gt; 3 &amp;&amp; (potentialprime % primearray[x] == 0 || potentialprime % primearray[x+1] == 0 || potentialprime % primearray[x+2] == 0))
                     isprime = false;
                if (prime &lt;= 3 &amp;&amp; potentialprime % primearray[x] == 0)
                     isprime = false;



It should be: 

  if (primearray[x] * primearray[x] &gt; potentialprime)
    break;
  if (prime &gt; 3 &amp;&amp; (potentialprime % primearray[x] == 0 || potentialprime % primearray[x + 1] == 0 || potentialprime % primearray[x + 2] == 0))
  {
    isprime = false;
    break;
  }
  if (prime &lt;= 3 &amp;&amp; potentialprime % primearray[x] == 0)
  {
    isprime = false;
    break;
  }




Be aware that 


  primearray[x] * primearray[x]


may overflow the domain range. You should maybe make the check by sqrt instead?