如何从配置文件解析多行值

本文关键字:配置文件 | 更新日期: 2023-09-27 17:56:27

我有如下属性文件:。我想将其存储在字典(键值对)中。

paragraph1~Para1 Line1
           Para1 Line2
           Para1 Line3
paragraph2~Para2 Line1
           Para2 Line2
paragraph3~Para3 Line1
           Para3 Line2
           Para3 Line3

我使用以下代码 - 但它只能解析 1 行。它不解析多行。因此,对于 dict["段落 1"],值为 "Para1 Line1"

foreach (var row in File.ReadAllLines("c:''temp''properties.txt"))
{
    if (row == String.Empty)
    {
        continue;
    }
    dict.Add(row.Split('~')[0], string.Join("~", row.Split('~').Skip(1).ToArray()));
}

如何从配置文件解析多行值

根据我对这个问题的理解,这应该有效:

        string paragraph = String.Empty;
        foreach (var row in File.ReadAllLines("s.txt").Where(row => row != String.Empty))
        {
            if (!row.Contains('~'))
            {
                dict[paragraph] += " " + row.Trim();
                continue;
            }
            dict.Add(row.Split('~')[0], string.Join("~", row.Split('~').Skip(1).ToArray()));
            paragraph = row.Split('~')[0];
        }

生成 [第 1 段,第 1

段第 1 行 第 1 段 第 2 行 第 1 行]。

不完全确定你在用字符串做什么。不过,加入吧。这将产生相同的输出:

            dict.Add(row.Split('~')[0], row.Split('~')[1]);