Here is the C# program that can find the nth (100000 in this program) prime number:

```
using System;
class Program
{
static void Main(string[] args)
{
int primeCount = 0; // to count the number of prime numbers found
int currentNumber = 2; // start checking from the first prime number
int targetPrimeIndex = 100000; // the index of the target prime number
while (primeCount < targetPrimeIndex)
{
if (IsPrime(currentNumber))
{
primeCount++;
if (primeCount == targetPrimeIndex)
{
Console.WriteLine("The {0}th prime number is: {1}", targetPrimeIndex, currentNumber);
break;
}
}
currentNumber++;
}
}
static bool IsPrime(int number)
{
if (number <= 1)
{
return false;
}
for (int i = 2; i <= Math.Sqrt(number); i++)
{
if (number % i == 0)
{
return false;
}
}
return true;
}
}
```

The program starts by initializing `primeCount`

to 0, which counts the number of prime numbers found so far, and `currentNumber`

to 2, which is the first prime number. The program then enters a while loop that continues until the `primeCount`

equals the index of the target prime number.

For each iteration of the while loop, the program checks whether the current number is prime by calling the `IsPrime`

function. If the current number is prime, the `primeCount`

is incremented by 1. If the `primeCount`

is equal to the target prime index, the program displays the target prime number and exits the loop.

The `IsPrime`

function checks whether a given number is prime by dividing it by all the numbers from 2 up to its square root. If any of these divisions results in a remainder of 0, the number is not prime, and the function returns false. If none of the divisions results in a remainder of 0, the number is prime, and the function returns true.