使用LINQ从配置文件中读取键值对

Pro*_*aos 0 c# linq dictionary

我有一个带有一些密钥对值的文件

key1 = value1
key2 = value2

[section name]
key3 = value3
key4 = value4
Run Code Online (Sandbox Code Playgroud)

所以我不关心部分名称,因为键是唯一的.我只想获取输入键的值.我有以下内容来阅读这些内容.

  var userDataLines = File.ReadAllLines(pathToFile);
Run Code Online (Sandbox Code Playgroud)

我有这样的事情

 var result = userDataLines.Select(userDataLine => userDataLine.Split(new[] { '=' }))
                           .Where(split => split.Length == 2);
Run Code Online (Sandbox Code Playgroud)

给我一个集合中的所有键值对.

但基本上我想从我的文件中获取一个包含键和值的字典,但不知道该怎么做.有人能指引我朝正确的方向发展吗?

谢谢

dtb*_*dtb 5

您可以使用ToDictionary扩展方法,如下所示:

var result = File.ReadLines(pathToFile)
                 .Select(line => line.Split(new[] { '=' }, 2))
                 .Where(split => split.Length == 2)
                 .ToDictionary(split => split[0], split => split[1]);
Run Code Online (Sandbox Code Playgroud)

(小改进:使用ReadLines而不是ReadAllLines,并将每行分成最多2个部分.)