所以我正在尝试解决这个问题,这应该不会太难,但我现在被困在这个问题上太久了。
这是我正在处理的数据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 行代码,但如果它不起作用,它也不起作用。
你可以只使用Split和GroupBy投影
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)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |