C# 索引数组错误
嗨,我遇到了点问题,我一直遇到这个错误:C# 索引数组错误,c#,C#,嗨,我遇到了点问题,我一直遇到这个错误: var cour = File.ReadAllLines(@"CourseFile.txt"); var courFind = cour.Where(g => g.Contains("Course")); string[] splited2; foreach (var item in courFind) { splited2 = item.Split(new string[] { "Course:" }, StringSplitOption
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
索引超出了数组的边界
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
上面的代码可以很好地工作,但下面的代码不能:
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
至少应该检查数组长度:
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
if(splited2.Length >= 2)
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
至少应该检查数组长度:
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
if(splited2.Length >= 2)
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
您必须检查数组的
长度(如果文件有空行怎么办?)
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
您必须检查数组的长度(如果文件有空行怎么办?)
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
文件行中可能不包含任何冒号字符(:)
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
你应该检查一下
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
var courFind = cour.Where(g => g.Contains("Course:"));
而不是以前的
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
随后的测试用例:
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
内容为空的文件
内容->课程:
使用内容->课程(错误与您面临的相同)
代码:
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
var cbListStudents = new List<String> ();
var cbListCourses = new List<String> ();
var d = File.ReadAllLines (@"res/TestFile.txt");
var t = d.Where (g => g.Contains ("Student Name"));
string[] splited;
foreach (var item in t) {
splited = item.Split (new string[] { "Student Name:" }, StringSplitOptions.None);
cbListStudents.Add (splited[1]);
}
var cour = File.ReadAllLines (@"res/TestFile2.txt");
var courFind = cour.Where (g => g.Contains ("Course"));
string[] splited2;
foreach (var item in courFind) {
splited2 = item.Split (new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Add (splited2[1]); //here is where the issues starts
}
var cbliststusts=newlist();
var cblistcources=新列表();
var d=File.ReadAllLines(@“res/TestFile.txt”);
var t=d,其中(g=>g.包含(“学生姓名”);
字符串[]被拆分;
foreach(t中的var项目){
splited=item.Split(新字符串[]{“学生名:”},StringSplitOptions.None);
cbListStudents.Add(拆分[1]);
}
var cour=File.ReadAllLines(@“res/TestFile2.txt”);
var courFind=cour.其中(g=>g.包含(“课程”);
字符串[]拆分为2;
foreach(courFind中的var项){
splited2=item.Split(新字符串[]{“课程:”},StringSplitOptions.None);
cbListCourses.Add(splited2[1]);//问题从这里开始
}
文件行中可能不包含任何冒号字符(:)
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
你应该检查一下
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
var courFind = cour.Where(g => g.Contains("Course:"));
而不是以前的
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
随后的测试用例:
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
内容为空的文件
内容->课程:
使用内容->课程(错误与您面临的相同)
代码:
var cour = File.ReadAllLines(@"CourseFile.txt");
var courFind = cour.Where(g => g.Contains("Course"));
string[] splited2;
foreach (var item in courFind)
{
splited2 = item.Split(new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Items.Add(splited2[1]);//here is where the issues starts
}
var cbListStudents = new List<String> ();
var cbListCourses = new List<String> ();
var d = File.ReadAllLines (@"res/TestFile.txt");
var t = d.Where (g => g.Contains ("Student Name"));
string[] splited;
foreach (var item in t) {
splited = item.Split (new string[] { "Student Name:" }, StringSplitOptions.None);
cbListStudents.Add (splited[1]);
}
var cour = File.ReadAllLines (@"res/TestFile2.txt");
var courFind = cour.Where (g => g.Contains ("Course"));
string[] splited2;
foreach (var item in courFind) {
splited2 = item.Split (new string[] { "Course:" }, StringSplitOptions.None);
cbListCourses.Add (splited2[1]); //here is where the issues starts
}
var cbliststusts=newlist();
var cblistcources=新列表();
var d=File.ReadAllLines(@“res/TestFile.txt”);
var t=d,其中(g=>g.包含(“学生姓名”);
字符串[]被拆分;
foreach(t中的var项目){
splited=item.Split(新字符串[]{“学生名:”},StringSplitOptions.None);
cbListStudents.Add(拆分[1]);
}
var cour=File.ReadAllLines(@“res/TestFile2.txt”);
var courFind=cour.其中(g=>g.包含(“课程”);
字符串[]拆分为2;
foreach(courFind中的var项){
splited2=item.Split(新字符串[]{“课程:”},StringSplitOptions.None);
cbListCourses.Add(splited2[1]);//问题从这里开始
}
或者:您有一行在拆分时留下<2个项目,或者您的文件中有一个空行。为什么不将StartsWith(…)
和子字符串(…)
用于此任务?无论如何,在不向随机的Internet陌生人发问的情况下诊断这些问题的绝对100%最佳方法是使用调试器并亲自检查值。您是否意识到第一项的数组索引从0开始?错误是不言自明的-item.Split(新字符串[]{“课程:”}
导致空数组或单元素数组,请在访问它之前尝试检查数组大小。您搜索课程
,然后在课程:
上拆分。您可能正在尝试拆分不包含课程:
的字符串(末尾带有冒号)。或者:您有一行在拆分时留下<2个项目,或者您的文件中有一个空行。为什么不使用StartsWith(…)
和子字符串(…)
对于此任务?无论如何,在不向随机的Internet陌生人发问的情况下诊断这些问题的绝对100%最佳方法是使用调试器并亲自检查值。可能的重复项您确实意识到第一项的数组索引从0开始?错误不言自明-item.Split(新字符串[]{“课程:”}
导致空数组或单元素数组,请在访问它之前尝试检查数组大小。您搜索课程
,然后在课程:
上拆分。您可能正在尝试拆分不包含课程:
(结尾带有冒号)的字符串。