添加到列表从文本文件

本文关键字:文本 文件 string 列表 添加 | 更新日期: 2023-09-27 18:17:45

我有一个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,这是完全无关的这个问题。

有没有人有任何关于如何解决这个问题的想法?如有任何建议,我将不胜感激。

Update: Try-catch没有结果。这是我得到的错误:

XamlParseException发生- '调用类型'AoW.ViewModels的构造函数。匹配指定绑定约束的ViewModelLocator抛出了异常。行号'13',行位'10'。

它指向主窗口构造函数中的InitializeComponent()。

更新2:真正的例外是:

"ArgumentException - path中存在非法字符。"它指向using (var reader....)线。

添加到列表<string>从文本文件

使用StringReader代替StreamReader:

using (var reader = new StringReader(Properties.Resources.sampleNamesMale))

你得到这个错误,因为StreamReader(string)期望一个文件路径。如果您在Properties.Resources中提供实际文本。sampleNamesMale,你必须使用StringReader

唯一可以得到异常的方法:

ArgumentException发生- path.

中存在非法字符

表示Properties.Resources.sampleNamesMale返回的路径实际上是无效的:

using (var reader = new StreamReader(Properties.Resources.sampleNamesMale))

在第二次更新之后,答案很容易:在调试器中显示文件的路径并使其正确。可能末尾有空格或者没有转义'