我有一个stringbuilder输出 (AnimalAge;犬:20,目录:10,大鼠:5#\ r \ nAnimalType;鲸:哺乳动物,鳄鱼:爬行动物#\ r \ n)的
我希望将AnimalAge作为不同的实体,将AnimalType作为不同的输出。
如何分隔这些值,以便我可以在不同的文本框\标签中填充它?
答案 0 :(得分:1)
我没有优化代码,但它应该看起来像
var text = new StringBuilder("AnimalAge;Dog:20,Cat:10,Rat:5#\r\nAnimalType;Whale:Mammal,Crocodile:Reptile#\r\n");
var cat = text.ToString().Split(new[] { "#\r\n" }, StringSplitOptions.RemoveEmptyEntries)
.Select(x => x.Split(new[] { ";" }, StringSplitOptions.None))
.Select(x => new
{
Category = x[0],
Values = x[1].Split(new[] { "," }, StringSplitOptions.None)
})
.Select(x => new
{
Category = x.Category,
Values = x.Values.ToDictionary(y => y.Split(new[] { ":" }, StringSplitOptions.None)[0], y => y.Split(new[] { ":" }, StringSplitOptions.None)[1])
})
.ToList();
最后,您将获得一个Category / Values对象列表,其中Values是一个Dictionary