Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 索引数组错误_C# - Fatal编程技术网

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(新字符串[]{“课程:”}
    导致空数组或单元素数组,请在访问它之前尝试检查数组大小。您搜索
    课程
    ,然后在
    课程:
    上拆分。您可能正在尝试拆分不包含
    课程:
    (结尾带有冒号)的字符串。