如何从具有多个分隔符的字符串生成器中获取值

本文关键字:字符串 获取 分隔符 | 更新日期: 2023-09-27 18:26:46

我有一个字符串生成器输出(动物年龄;狗:20,猫:10,大鼠:5#''r''n动物类型;鲸鱼:哺乳动物,鳄鱼:爬行动物#''r''n)

我希望AnimalAge作为不同的实体,AnimalType作为不同的输出。

如何将这些值分开,以便在不同的文本框''标签中填充这些值?

如何从具有多个分隔符的字符串生成器中获取值

我没有优化代码,但它看起来应该像

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