C# 如何将格式化字符串转换为字典<;字符串,字符串>;总体安排
如何将以下格式的字符串转换为字典格式。C# 如何将格式化字符串转换为字典<;字符串,字符串>;总体安排,c#,regex,C#,Regex,如何将以下格式的字符串转换为字典格式。 var ss = "[TTT, sdfsdf],[sfsdf, sdfsdf],[T44TT, sdfsdf]"; 下面的代码创建一个字典,其中键是每组方括号中的第一个字符串,值是第二个字符串: var ss = "[TTT, sdfsdf],[sfsdf, sdfsdf],[T44TT, sdfsdf]"; var dict = ss.Split(new[] { "],", "[", "]" }, StringSplitOptions.Remov
var ss = "[TTT, sdfsdf],[sfsdf, sdfsdf],[T44TT, sdfsdf]";
下面的代码创建一个
字典
,其中键是每组方括号中的第一个字符串,值是第二个字符串:
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]
(用逗号分割字符串并抓取第二位)
这里有您的
字典
假设您有一个实体集合(我使用了元组),您可以使用ToDictionary()
为您的字典投影键和值:
var tuples = new List<Tuple<string, string>>
{
new Tuple("TTT", "sdfsdf"),
new Tuple("sfsdf", "sfsdf")
};
var dictionary = tuples.ToDictionary(_ => _.Item1, _ => _.Item2);
var tuples=新列表
{
新元组(“TTT”、“sdfsdf”),
新元组(“sfsdf”、“sfsdf”)
};
var dictionary=tuples.ToDictionary(=>u0.Item1,=>0.Item2);
您可以使用正则表达式:
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]);
var ss=“[TTT,sdfsdf],[sfsdf,sdfsdf],[T44TT,sdfsdf]”;
var结果=
Regex.Matches(ss,@“\[([^,]*),\s*([^,]*)\]).Cast()
.ToDictionary(m=>m.Groups[1],m=>m.Groups[2]);
我推荐以下代码
var dictionary = ss.Substring(1, ss.Length - 2)
.Split(new string[] { "],[" }, StringSplitOptions.None)
.Select(_ => _.Split(','))
.ToDictionary(parts => parts[0], parts => parts[1]);
这是无效的C#,不足以说明你在问什么。用有效的C#解释你的问题。你能更具体一点吗?变量ss的类型是什么?您可以通过如下方式构造字典:var dict=newdictionary{{{“TTT”,“sdfsdf”},{“sfsdf”,“sdfsdf”},{“T44TT”,“sdfsdf”};“ss”是任何对象类型。为变量“ss”构造一个字典。Cast需要添加什么名称空间?添加
System.Linq
和System.Text.RegularExpressions
。请添加如何在控制台上显示它们的代码well@EhsanSajjad:添加说明!