将数据表对象数组中的数据分组到不同的对象数组



>我在数据表中有以下数据。

[
{'age': '25', 'name': 'mike'},
{'age': '25', 'name': 'john'},
{'age': '25', 'name': 'charles'},
{'age': '30', 'name': 'melanie'},
{'age': '30', 'name': 'cindy'}
]

我想使用 Lodash 或一些不那么混乱的方式来解析这个数组来获取一个对象数组,其中 Object 有一个映射到字符串的键"age"和一个映射到字符串数组的键"名称"。

因此,最终生成的数组如下所示:

[
{'age': '25', 'names': ['john', 'mike', 'charles']},
{'age': '30', 'names': ['cindy', 'melanie']}
]

请向我建议使用 C# 或 VB.net 来实现此输出的方法。

尝试以下操作:

DataTable dt = new DataTable();
dt.Columns.Add("age", typeof(int));
dt.Columns.Add("name", typeof(string));

dt.Rows.Add(new object[] {25, "mike"});
dt.Rows.Add(new object[] {25, "john"});
dt.Rows.Add(new object[] {25, "charles"});
dt.Rows.Add(new object[] {30, "melanie"});
dt.Rows.Add(new object[] {30, "cindy"});
var groups = dt.AsEnumerable().GroupBy(x => x.Field<int>("age"));
foreach (var group in groups)
{
Console.WriteLine("age : '{0}', names : '{1}'", group.Key, string.Join(",", group.Select(x => x.Field<string>("name"))));
}
Console.ReadLine();

最新更新