我从遗留应用程序中获取以下数据:
Id = 1
Name = Test 1
Id = 2
Name = Test 2#;10#;Test 3#;11#; Test 4#;12 // This simulates a multiple values field in legacy system
我想以以下格式进行转换,获取上面的多个值字段并在记录中进行转换。上面 Id = 2 的项目必须生成 3 条记录
Id = 1
Name = Test 1
Id = 2
Name = Test 2
Id = 2
Name = Test 3
Id = 2
Name = Test 4
即,我想要的是转换现在只出现在一个字段中的多个值与# 连接的字段;在包含多条记录的列表中。它可以使用 Linq 吗?
我尝试用下面的代码解决
var list = lista.Select(x => x.Name.Split(new string[] { "#;" }, System.StringSplitOptions.None)
.Where(xa => !int.TryParse(xa, out zeroValue))
.Select(xa =>
new {
Id = x.Id, Name = xa
})
).ToList();
此代码返回两个数组的列表,第一个数组有 1 个元素,第二个有 3 个元素。数组中的项目是正确的,但我只想要一个包含所有 4 个项目的列表