我正试图将.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]);