在C#中将字符串拆分为字符串数组列表

Jun*_*aid 3 c# asp.net arrays split list

我正在尝试转换以下字符串:

"CN=Test,OU=ABC,OU=Company,DC=CFLA,DC=domain"

转换成这种形式(字符串数组列表):

[
  {"CN" , "Test"},
  {"OU" , "ABC"},
  {"OU" , "Company"},
  {"DC" , "CFLA"},
  {"DC" , "domain"},
]
Run Code Online (Sandbox Code Playgroud)

我已经尝试过将字符串转换成字典列表。我尝试将字符串拆分两次。首先,基于=

以下是我使用的代码:

var result = str.Split(',')
                .Select(line => line.Split('='))
                .ToDictionary(b=> b[0], b=> b[1])
                .ToList();
Run Code Online (Sandbox Code Playgroud)

但这给了我以下异常:'System.ArgumentException:'已经添加了具有相同键的项',正确的做法是将“ OU”和“ DC”作为键重复。

我现在想要的是将该字符串拆分/转换/处理为字符串数组列表(如上所示)。可能吗?

或以其他解决方案指导我。提前致谢。

PS,我有数百个这样的字符串,我只想要每个字符串中第一个“ OU”的值。

bla*_*tom 6

如果你真的想要一个列表的与字符串数组 S,只是省略“ToDictionary”行。

var result = str.Split(',')
            .Select(line => line.Split('='))
            .ToList();
Run Code Online (Sandbox Code Playgroud)

将为您提供一个数组列表,每个数组[0]持有“键”,[1]持有“值”

广告PS:要获取第一个“ OU”值,可以使用正则表达式:

var firstOuRegex = new Regex("[oO][uU]=([^,]+)", RegexOptions.Compiled);
var testString = "CN=Test,OU=ABC,OU=Company,DC=CFLA,DC=domain";

var result = firstOuRegex.Match(testString).Groups[1];
Run Code Online (Sandbox Code Playgroud)