我有一个 List<string>
我想通过设置为项目资源的文本文件来填充。我已经仔细研究了执行此操作的方法,但还没有找到不会导致我的程序崩溃的方法。
如果我手动填充列表...
_names.Add("Sam");
_names.Add("John");
_names.Add("Mike");
...一切正常。我的文本文件中的每个名称都在单独的一行中,没有逗号或任何其他内容。当我尝试读入名称时,无论我选择哪条路线,程序都会崩溃。这是我最近尝试过的方法,尽管还有很多其他方法:
using (var reader = new StreamReader(Properties.Resources.sampleNamesMale))
{
string line;
while ((line = reader.ReadLine()) != null)
{
_names.Add(line);
}
}
此外,我无法确定崩溃的原因,因为每次崩溃时,错误都只提到 ViewModelLocator,这与此问题完全无关。
有人知道如何解决这个问题吗?如果有任何建议,我将不胜感激。
更新:Try-catch 没有结果。这是我得到的错误:
发生 XamlParseException -“对与指定绑定(bind)约束匹配的类型‘AoW.ViewModels.ViewModelLocator’调用构造函数引发异常。”行号“13”和行位置“10”。
它指向我主窗口构造函数中的 InitializeComponent()。
更新 2:真正的异常(exception)是:
“出现 ArgumentException - 路径中存在非法字符。”它指向 using (var reader.... 行。
最佳答案
使用 StringReader 而不是 StreamReader:
using (var reader = new StringReader(Properties.Resources.sampleNamesMale))
您收到该错误是因为 StreamReader(string) 需要一个文件路径。如果您在 Properties.Resources.sampleNamesMale 中提供实际文本,则必须使用 StringReader。
关于c# - 从文本文件添加到 List<string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17036245/