分组到一个数组中
本文关键字:一个 数组 | 更新日期: 2023-09-27 18:17:59
这看起来应该是相当容易的,但是,由于某种原因,我的大脑不合作。
我有一个简单的方法调用这个:
return Json.Encode(
Models
.GroupBy(e => e.Gender)
.Select(g => new {
Gender = g.Key,
Count = g.Count()
}).ToArray()
);
生成如下JSON:
[{"Gender":"Male","Count":2},{"Gender":"No Answer","Count":1}]
但是,我希望JSON对象看起来像这样:
[
['Male', 2],
['No Answer', 1]
]
我试过使用元组和字典,但无济于事。我敢肯定,一旦这个问题得到答案,我会后悔的。
应该这样做:
return Json.Encode(
Models
.GroupBy(e => e.Gender)
.Select(g => new object[] { g.Key, g.Count() })
.ToArray()
);
你想要一个数组的数组,所以简单地创建数组
您可以使用匿名类型。它们提供了一种方便的方法,可以将一组只读属性封装到单个对象中,而不必先显式地定义类型。
所以,从你的Select Expression中跳过你的Gender
和Count
属性。
return Json.Encode(Models
.GroupBy(e => e.Gender)
.Select(g => new object[] { g.Key, g.Count()})
.ToArray());
注意
- 如果你没有在匿名类型中指定成员名,编译器会给匿名类型成员提供与初始化它们所用属性相同的名称。
- 您必须为正在用表达式初始化的属性提供一个名称(在您的例子中是
Gender
和Count
)