如何将字符串转换为字体格式,格式如下所示。
var ss = "[TTT, sdfsdf],[sfsdf, sdfsdf],[T44TT, sdfsdf]";
答案 0 :(得分:3)
以下代码创建一个Dictionary<string,string>
,其中键是每组方括号中的第一个字符串,值是第二个字符串:
var ss = "[TTT, sdfsdf],[sfsdf, sdfsdf],[T44TT, sdfsdf]";
var dict = ss.Split(new[] { "],", "[", "]" }, StringSplitOptions.RemoveEmptyEntries)
.ToDictionary(i => i.Split(',')[0], i => i.Split(',')[1]);
结果字典有3个条目:
Key: TTT Value: sdfsdf
Key: sfsdf Value: sdfsdf
Key: T44TT Value: sdfsdf
首先使用string.Split
将初始字符串拆分为字符串数组。
每次遇到"],"
或"["
或"]"
时都会发生拆分。
这会产生一个像这样的字符串数组:
TTT, sdfsdf
sfsdf, sdfsdf
T44TT, sdfsdf
此数组随后调用了Linq扩展方法ToDictionary
。这允许您指定一个键和值生成器方法,该方法可以在数组中的每个元素上运行,以创建键和值。
方法是:i => i.Split(',')[0]
(用逗号分隔字符串并抓住第一位)
和:i => i.Split(',')[1]
(用逗号分隔字符串并抓住第二位)
你有Dictionary
。
答案 1 :(得分:0)
假设您有一组实体(我使用了元组),您可以使用ToDictionary()
为您的字典项目键和值:
var tuples = new List<Tuple<string, string>>
{
new Tuple("TTT", "sdfsdf"),
new Tuple("sfsdf", "sfsdf")
};
var dictionary = tuples.ToDictionary(_ => _.Item1, _ => _.Item2);
答案 2 :(得分:0)
您可以使用正则表达式:
var ss = "[TTT, sdfsdf],[sfsdf, sdfsdf],[T44TT, sdfsdf]";
var result =
Regex.Matches(ss, @"\[([^,]*),\s*([^,]*)\]").Cast<Match>()
.ToDictionary(m => m.Groups[1], m => m.Groups[2]);
答案 3 :(得分:0)
我推荐以下代码。
var dictionary = ss.Substring(1, ss.Length - 2)
.Split(new string[] { "],[" }, StringSplitOptions.None)
.Select(_ => _.Split(','))
.ToDictionary(parts => parts[0], parts => parts[1]);