将包含多对多关系<string>项的列表转换为一对多关系



我有一个列表,它包含由"分隔的字符串。该列表用作多对多关系的列表:

Category1 Item1
Category1 Item2
Category1 Item3
Category2 Item1 
Category2 Item2 
Category2 Item3
Category2 Item4
Category2 Item5
Category3 Item1 

我需要将此列表转换为具有一对多关系顺序的列表,其中项目用";"分隔示例:

Category1 Item1;Item2;Item3
Category2 Item1;Item2;Item3;Item4;Item5
Category3 Item1

我现在有多个前臂环。我很乐意与大家分享我尝试过的许多方法,但它确实一团糟。然而,告诉我,可能有一种Lambda技术可以实现这一点。有人能给我指正确的方向吗?感谢

var items = new List<string> {
"Category1 Item1",
"Category1 Item2",
"Category1 Item3",
"Category2 Item1",
"Category2 Item2",
"Category2 Item3",
"Category2 Item4",
"Category2 Item5",
"Category3 Item1"
};
var result = items.Select(x => x.Split(' '))
.Select(x => new {
Category = x[0],
Item = x[1]
})
.GroupBy(x => x.Category, y => y.Item, (k, e) => string.Join(";", e))
.ToList();
Console.ReadLine();

最新更新