ファイルは任意のコロン(:)行にが含まれていない可能性があります。
あなたは
var courFind = cour.Where(g => g.Contains("Course:"));
の代わりに、以前の場合と同様に確認する必要があります。
テストケースは続く:
- 空のコンテンツ内容と
- とファイル - >コース:コンテンツと
- - >コース(あなたが直面しているとエラーと同じ)
コード:
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
}
どちらか:あなたは葉<2つの項目を分割ラインを持っている、またはあなたがあなたのファイルに空白行を持っています。このタスクに 'StartsWith(...)'と 'Substring(...) 'を使わないのはなぜですか?とにかく、無作為なインターネットの見知らぬ人に質問を投稿することなくこれらの問題を診断する絶対100%の最良の方法は、デバッガを使用して、自分で値を検査することです。 – john
[エラー:インデックスが配列の境界外にありました。](https://stackoverflow.com/questions/21700879/error-index-was-outside-the-bounds-of-the-array) – john
最初の項目で配列インデックスが0から始まることを認識していますか? – oerkelens