Не уверен, что ваш метод будет работать, но в ответ на вторую часть вашего вопроса:
string s = Console.ReadLine();
int n = Convert.ToInt32(s);
int[] arprimes = GeneratePrimes(n);
Вероятно, лучше всего попытаться использовать бит преобразования, поскольку пользователь может ввести что-то, что не является числом.
РЕДАКТИРОВАТЬ: На самом деле я бы изменил метод на GeneratePrimes (int n) вместо GeneratePrimes (int [] n) - вам не нужно передавать массив чисел, только число, поскольку оно возвращает массив.
Другое редактирование: здесь ваш метод изменен так, что вы передаете int вместо массива int. Тем не менее, я не уверен, что этот метод действительно будет работать.
public static int[] GeneratePrimes(int n)
{
int[] array = new int[n];
int PrimeLength =0;
for (int i = 0; i < n; i++)
{
if (ISprime(array[i]))
PrimeLength++;
}
int[] arprime = new int[PrimeLength];
for (int i = 0, j=0; i< PrimeLength; i++)
{
if (ISprime(i))
arprime[j++] = i;
}
return arprime;
}
и вот что вы хотите в качестве основного метода
public static void Main(I cannot remember what goes here!)
{
string s = Console.ReadLine();
int n = Convert.ToInt32(s);
int[] arprimes = GeneratePrimes(n);
string output = "";
for (i=0; i<arprimes.Length;i++)
{
output += arprimes[i].ToString() + ", ";
}
output = output.Remove(output.Length - 3, 2);
Console.WriteLine(output);
}