【发布时间】:2020-02-12 01:15:26
【问题描述】:
我正在尝试转换以下字符串:
"CN=Test,OU=ABC,OU=Company,DC=CFLA,DC=domain"
变成这种形式(字符串数组的列表):
[
{"CN" , "Test"},
{"OU" , "ABC"},
{"OU" , "Company"},
{"DC" , "CFLA"},
{"DC" , "domain"},
]
我已经尝试过将字符串转换为字典列表。我尝试将字符串拆分两次。先以,为基础,再以=为基础。
以下是我使用的代码:
var result = str.Split(',')
.Select(line => line.Split('='))
.ToDictionary(b=> b[0], b=> b[1])
.ToList();
但它给了我以下异常:'System.ArgumentException:'已添加具有相同键的项目',因为'OU'和'DC'被重复作为键。
我现在想要的是将此字符串拆分/转换/处理为字符串数组列表(如上所示)。可能吗?
或者请用替代解决方案指导我。提前致谢。
附:我有数百个这样的字符串,我只想要每个字符串中第一个“OU”的值。
【问题讨论】:
-
只需删除您的
ToDictionary调用,您就已经有了一个字符串数组列表。虽然如果目标只是“从每个字符串中获取第一个 OU”,那么还有更简单的方法。
标签: c# asp.net arrays list split