Code Bye

C#问题,索引超出了数组的最大界限

 private void button3_Click(object sender, EventArgs e)
{
string[] images = Directory.GetFiles(“E:/Img/”, “*.jpg”, SearchOption.AllDirectories);
string[] videos = Directory.GetFiles(“E:/video/”, “*.avi”, SearchOption.AllDirectories);
textBox1.Text = “”;
for (int i = 0 , v = 0 ; i < images.Length || v < videos.Length ; i++,v++)
{
var filename = Path.GetFileName(images[i]);
var videoname = Path.GetFileName(videos[v]);
textBox1.Text += filename + “\r\n” + videoname + “\r\n”;
if (v > videos.Length – 1)
return;
}
这个本人写的程序,想在Txtbox里显示两个文件夹内全部jpg和avi视频文件的文件名列表,但是在videns这个数组里,总是报索引超出了数组的最大界限。这个错误。本人后面加了判断,也还是会报错,问一下具体怎么修改?
解决方案

10

string[] images = Directory.GetFiles(“E:/Img/”, “*.jpg”, SearchOption.AllDirectories);
string[] videos = Directory.GetFiles(“E:/video/”, “*.avi”, SearchOption.AllDirectories);
int iLength = Math.Max(images.Length, videos.Length);
textBox1.Text = “”;
for (int i = 0; i < iLength; i++)
{
var filename = “”;
if (i < images.Length)
{
filename =  Path.GetFileName(images[i]);
}
var videoname = “”;
if (i < videos[i].Length)
{
videoname = Path.GetFileName(videos[i]);
}
textBox1.Text += filename + “\r\n” + videoname + “\r\n”;
}

20

引用:
Quote: 引用:

string[] images = Directory.GetFiles(“E:/Img/”, “*.jpg”, SearchOption.AllDirectories);
string[] videos = Directory.GetFiles(“E:/video/”, “*.avi”, SearchOption.AllDirectories);
int iLength = Math.Max(images.Length, videos.Length);
textBox1.Text = “”;
for (int i = 0; i < iLength; i++)
{
var filename = “”;
if (i < images.Length)
{
filename =  Path.GetFileName(images[i]);
}
var videoname = “”;
if (i < videos[i].Length)
{
videoname = Path.GetFileName(videos[i]);
}
textBox1.Text += filename + “\r\n” + videoname + “\r\n”;
}


感谢您,按您的思路写,也还是会报错,还是索引超出界限

videos[i]多了[i]


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#问题,索引超出了数组的最大界限