从文件中插入键/值对时,将跳过字典中的最后两个元素



我正试图将.txt文档中的所有键值对添加到字典中,但由于某种原因,字典的前两个元素被跳过了。我有一个简单的文本文件,可以读取

1:一
2:两个
3:三个
4:四
5:五
6:六
7:Seven
8:Eight
9:Nine
10:10

我有一本字典被声明为:

Dictionary<String,String> Test = new Dictionary<String,String>();

以及用于测试目的的列表:

List<String> questionsList = new List<String>();
List<String> possibleAnswers = new List<String>();

读取文件的代码:

using (StreamReader sr = new StreamReader(FilePath))
{
   String keyValue;
   char[] delimiterChars = {':'};
   while (!sr.EndOfStream)
   {
       keyValue = sr.ReadLine();
       String[] parts = keyValue.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries);
       Test.Add(parts[0], parts[1]); 
       questionsList.Add(parts[0]);
       possibleAnswers.Add(parts[1]);
  }
}

当我调试程序时,显示测试字典计数为8,而它应该是10,并按如下方式填充:

[0]{[3,Three]}
[1] {[4,Four]}
[2] {[5,Five]}
[3] {[6,Six]}
[4] {[7,Seven]
[5] {[8,Eight]}
[6] {[9,Nine]}
[7] {[10,Ten]}

但是questionsList和possibleAnswer List包含了读取文件时应该包含的所有值。有人能给我一些见解吗?我确信我只是错过了一些愚蠢的东西。提前感谢。

您的代码对我来说很好。我只是想指出,您的Dictionary代码可以像这样大大简化:

var dictionary = File.ReadAllLines(file)
                     .ToDictionary(x => x.Split(':')[0], 
                                   x => x.Split(':')[1]);

相关内容

最新更新