c# - 从文本文件添加到 List<string>

标签 c# .net io

我有一个 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/

相关文章:

asp.net - 我可以在与 .net 4.5 APS.net 站点相同的项目中使用 .net 4.61 类库吗?

Haskell:I/O 和从函数返回

java - 专门从一系列类(class)写入 csv 文件

c# - 使用提供程序 'RsaProtectedConfigurationProvider' 解密失败

c# - Site.Master 中的一些东西可以有条件地显示(MVC)吗?

c# - "Order by Col1, Col2"使用 Entity Framework

c# - 是否可以加快单元测试的时间?

c++ - 不同线程中的 fsync() 和 write()

c# - DateTime.ParseExact 的更快替代品

c# - 对嵌套集合使用 FILO