C# 索引超出了数组错误的范围

C# 索引超出了数组错误的范围,c#,C#,IDE告诉我第56、41和14行可能是问题所在,所以我猜这与我的随机数生成器有关 有人能帮我一下吗?看起来像是主菜和主菜alcalorival包含12项。这意味着它们的索引将从0到11 使用random.Next(0,13)将生成一个从0到12的数字。当您尝试访问索引12处的那些数组时,会抛出异常。看起来像entres和entremealcaloricval包含12项。这意味着它们的索引将从0到11 使用random.Next(0,13)将生成一个从0到12的数字。当您尝试访问索引12处的那些数

IDE告诉我第56、41和14行可能是问题所在,所以我猜这与我的随机数生成器有关


有人能帮我一下吗?

看起来像是
主菜
主菜alcalorival
包含12项。这意味着它们的索引将从0到11


使用
random.Next(0,13)
将生成一个从0到12的数字。当您尝试访问索引12处的那些数组时,会抛出异常。

看起来像
entres
entremealcaloricval
包含12项。这意味着它们的索引将从0到11


使用
random.Next(0,13)
将生成一个从0到12的数字。当您尝试访问索引12处的那些数组时,会抛出异常。

您的
GetDay()
函数是什么样子的?string GetDay(){return daysOfWeek[(date%7)-1];}将其更改为:
string GetDay(){return daysOfWeek[(date%7)];}
您的
GetDay()函数是什么样子的?string GetDay(){return daysOfWeek[(日期%7)-1];}将其更改为:
string GetDay(){return daysOfWeek[(日期%7)];}
他拥有的不仅仅是这些。当日期是7的倍数时,他还试图在GetDay函数中调用daysOfWeek[-1]。这是一个很好的调用,但他发布的原始代码中没有该方法。我要求在计算数组中的项目之前在注释中查看它。在我有机会之前,你已经回答了主犯谢谢你们,所以把13改成12?并修复你的getDay功能。他不仅仅是这个。当日期是7的倍数时,他还试图在GetDay函数中调用daysOfWeek[-1]。这是一个很好的调用,但他发布的原始代码中没有该方法。我要求在计算数组中的项目之前在注释中查看它。在我有机会之前,你已经回答了主犯谢谢你们,所以把13改成12?就可以修复getDay函数了
public class dailyMenu          
{               

    private string day="";
    private int date = 0; 
    private static int nextDate=1;
    private string entree ="";
    private double price;
    private double calories;

    private static string [] daysOfWeek= {"Monday","Tuesday","Wednesday",
        "Thursday", "Friday", "Saturday", "Sunday"};

    private static string[] entrees = {"Beef Tenderloin Fresco", 
        "Madagascar Filet Mignon", "Filet Mignon", " Lobster Ravioli",
        "Asian Infused Braised Beef", "New Age Chicken Cordon Bleu", 
        "Short Ribs", " Beef Wellington","Fajitas", "Bacon Cheeseburger", 
        "Beef Burgandy", "Spagehetti"};

    private static double [] entreePrices= { 5.99,7.99,6.99,4.50,9.99,10.29,
        5.67,8.99, 3.99,4.78,10,79,6.98};

    private static int[] entreeMealCaloricVal= { 999,1288,770,699,450,999,1500,873, 911,
        1011, 777,500}; 

    public dailyMenu()
    {
        assignDate();
        GetDay();
        RandPopulate();
    }

    void assignDate()
    {
        date = nextDate;
        nextDate++;

        if (GetDay()== "Friday") 
        {
            nextDate += 2;
        }
    }

    void RandPopulate()
    {
        Random random = new Random();
        int randomNumber = random.Next(0,13);

        entree = entrees [randomNumber];
        price = entreePrices [randomNumber];
        calories = entreeMealCaloricVal [randomNumber];
    }
}