我有这段代码用于创建一个程序,该程序采用一个范围并将质数输出到控制台。我有一个问题,我正在尝试遍历我构建的数组,因此循环应该只将使用我的方法的返回值的素数值写入控制台。我遇到的问题是我将第二个条件设置为,numArray.Length但它似乎给了我Index out of Range Exception. 我只希望循环遍历所有值,numArray并在确定最后一个值是否为素数时停止。
public struct Prime
{
    public int x;
    // constructor for Prime
    public Prime(int x1)
    {
        x = x1;
    }
    public int IsPrime(int number)
    {
        int i;
        for (i = 2; i * i <= number; i++)
        {
            if (number % i == 0) return 0;
        }
        return 1;
    }
}
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter an Integer");
        int num1 = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Enter a Second Integer of Greater Value");
    //    int num2 = 0;
        int num2 = Convert.ToInt32(Console.ReadLine());
    /*    if (num2temp > num1)
        {
            num2temp = num2;
        }
        else
        {
            Console.WriteLine("You Did Not Enter An Integer Greater Than the First Integer, Please Enter Your Integers Again.");
            Environment.Exit(0);
        }
    */    int index = 1;
        int[] numArray = new int[num2];
        for (int i = num1; i <= num2; i++)
        {
            numArray[index] = i;
            Console.WriteLine(" index: {0} assignment: {1}", index, i);
            index++;
            Console.WriteLine("index: {0}",index);
        }
        Console.WriteLine("value: {0}", numArray[40]);
    /*    Prime myprime = new Prime();
        if (myprime.IsPrime(numArray[12]) == 1)
        {
            Console.WriteLine("true");
        }
        else
        {
            Console.WriteLine("False");
        } */
        Prime myprime = new Prime();
       int value = 0;
        for (int y = 1; y <= num2; y++)
        {
            if (myprime.IsPrime(numArray[y]) == 1)
            {
                value = numArray[y];
                Console.Write("{0} \t", value);
            }
        }