将多行字符串转换为多维数组?

时间:2018-10-09 14:45:15

标签: c#

我有一个像这样的字符串:

Option1: Value1
Option2: Value2
Option3: Value3

我正尝试将其放入多维数组中,以便随后可以根据对“选项”的输入内容查找值,它将返回该值。

到目前为止,我已经将每行放入数组:

string[] Header = Headers.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);

我不确定如何将其拆分为二维数组,以便它将基于冒号分隔符来拆分行?

然后如何执行查找?例如在PHP中,我将使用变量:$Header['Option2']来返回“ Option2”的值。

谢谢。

1 个答案:

答案 0 :(得分:5)

您可以使用LINQ完全构建查找字典:

var dictionary = text.Split(new []{Environment.NewLine}, StringSplitOptions.None)
          .Select(line => line.Split(':'))
          .ToDictionary(lineParts => lineParts[0], lineParts => lineParts[1]);

用简单的代码解释它的作用:

var lines = text.Split(new []{Environment.NewLine}, StringSplitOptions.None); //split the string in lines
var dictionary = new Dictionary<string, string>();
foreach (var line in lines)
{
    var lineParts = line.Split(':'); //split line to parts with : as delimiter
    var key = lineParts[0]; //first part is the key
    var value = lineParts[1]; //second part is the value
    dictionary.Add(key, value);
}

现在您可以像这样简单地查找:

var value = dictionary["Option2"];