请注意,C#索引超出了特定于数组的帮助的范围
我正在做一个预订飞机座位的小程序——我不断地遇到这个错误。我想让节目告诉我哪些乘客(乘客)预订了飞机上的哪些座位。只是,如果我进入的座位比我有乘客的多,它就不会运行——我需要它来允许开放的座位(比“flysaeder”少“passager”)。我做错了什么 我在这方面有点生疏,所以我很抱歉解释得不好 “ListOverpassager[index]=ListOverpassager[i];”上出现错误请注意,C#索引超出了特定于数组的帮助的范围,c#,arrays,C#,Arrays,我正在做一个预订飞机座位的小程序——我不断地遇到这个错误。我想让节目告诉我哪些乘客(乘客)预订了飞机上的哪些座位。只是,如果我进入的座位比我有乘客的多,它就不会运行——我需要它来允许开放的座位(比“flysaeder”少“passager”)。我做错了什么 我在这方面有点生疏,所以我很抱歉解释得不好 “ListOverpassager[index]=ListOverpassager[i];”上出现错误 名称空间eksamenvingerne { 公共部分类Form1:Form { int fly
名称空间eksamenvingerne
{
公共部分类Form1:Form
{
int flysaeder;
内部乘客;
随机tilfældighed=新随机();
公共表格1()
{
初始化组件();
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{
listBox1.Items.Clear();
listBox2.Items.Clear();
{
int.TryParse(txtsaeder.Text,out-flysaeder);
int.TryParse(txtantalpassager.Text,out passager);
如果(乘客>飞行驾驶员)
{
MessageBox.Show(“IngenFriePladser!”);
}
其他的
{
int[]listeOverpassager=Enumerable.Range(0,passager.ToArray();
int[]flypladser=新int[flysaeder];
对于(int i=0;i
您的逻辑实际上导致了此问题:
首先,您要确定
passager在哪一行出现错误?错误基本上是告诉您试图引用数组中的项,但该项实际上不存在。所以在你的逻辑中可能有一个错误,这对于那些没有想到这个逻辑的人来说并不完全明显。哪一行抛出错误,发生错误时涉及的变量的运行时值是什么?哦,对不起。错误出现在“ListOverpassager[index]=ListOverpassager[i];”上。我认为问题在于索引和数组不匹配,但我不明白。(事实上,我在这方面不是最出色的)。当passagerer==flyseader时会发生吗?不,它发生在“ListOverpassager[index]=ListOverpassager[I];。一个提示(与问题无关):尽量不要在代码中使用不常见的leter,如tilfældighed
变量名中的tilfældighed。这很有意义-那么我如何允许比“flysaeder”更少的“passageer”?int index=tilfældighed。下一步(0,passageer)
soindex=0..passager-1
。这看起来不是答案。@Henkholtman造成问题的不是index
,而是i
是的,你是对的。但这只是破坏了逻辑,不是一个一个的错。我从来没有说过这是一个一个的错
namespace eksamenvingerne
{
public partial class Form1 : Form
{
int flysaeder;
int passagerer;
Random tilfældighed = new Random();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
listBox2.Items.Clear();
{
int.TryParse(txtsaeder.Text, out flysaeder);
int.TryParse(txtantalpassagere.Text, out passagerer);
if (passagerer > flysaeder)
{
MessageBox.Show("Ingen frie pladser!");
}
else
{
int[] listeOverPassagerer = Enumerable.Range(0, passagerer).ToArray();
int[] flypladser = new int[flysaeder];
for (int i = 0; i < flysaeder; i++)
{
int index = tilfældighed.Next(0, passagerer);
flypladser[i] = tilfældighed.Next(i, passagerer);
flypladser[i] = listeOverPassagerer[index];
listeOverPassagerer[index] = listeOverPassagerer[i];
}
for (int i = 0; i < flypladser.Length; i++)
{
listBox1.Items.Add("Sæde #" + i + ": Passagernr.:" + flypladser[i]); //listboxen udskriver indholdet af hver eneste plads.
}
}
}
}
}
}
if (passagerer > flysaeder)
{
MessageBox.Show("Ingen frie pladser!");
}
for (int i = 0; i < flysaeder; i++)