c#将数据字符串转换为对象

Jor*_*dec 0 c#

所以我正在尝试解决这个问题,这应该不会太难,但我现在被困在这个问题上太久了。

这是我正在处理的数据var data = "2,6;2,7;4,14;5,20";
这是一个显示的字符串<modifierGroup>,<modifier>;<modifierGroup>,<modifier>;...

这是我最终想要获取数据的模型:

public class ModifierGroup
{
    public int Id { get; set; }
    public List<Modifier> Modifiers { get; set; }
}

public class Modifier
{
    public int Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在我一直在想我需要以这种格式获取我的数据,所以我最终可以将它推送到模型中:

Key=2
    Value=6
    Value=7
    
Key=4
    Value=14
    
Key=5
    Value=20
Run Code Online (Sandbox Code Playgroud)

但我可能是错的。我很想保持代码简短。所以我宁愿防止循环中的循环并一遍又一遍地执行 if 语句。最好的情况是我得到 1 行或 2 行代码,但如果它不起作用,它也不起作用。

AAA*_*ddd 7

你可以只使用SplitGroupBy投影

var data = "2,6;2,7;4,14;5,20";
var result = data
  .Split(";")
  .Select(x => x.Split(",")
     .Select(int.Parse)
     .ToArray())
  .GroupBy(x => x[0])
  .Select(x => new ModifierGroup()
  {
     Id = x.Key, 
     Modifiers = x.Select(y => new Modifier() {Id = y[1]}).ToList()
  });
Run Code Online (Sandbox Code Playgroud)