C# 分组成数组
这看起来应该很容易,但是,出于某种原因,我的大脑不合作 我有一个简单的方法调用:C# 分组成数组,c#,javascript,json,encoding,C#,Javascript,Json,Encoding,这看起来应该很容易,但是,出于某种原因,我的大脑不合作 我有一个简单的方法调用: return Json.Encode( Models .GroupBy(e => e.Gender) .Select(g => new { Gender = g.Key, Count = g.Count() }).ToArray() ); 这将生成以下JSON: [{"Gender":"Male","Count":2},{"Gender"
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()
);
您需要一个数组,因此只需创建数组即可。这应该可以做到:
return Json.Encode(
Models
.GroupBy(e => e.Gender)
.Select(g => new object[] { g.Key, g.Count() })
.ToArray()
);
您需要一个数组,因此只需创建数组即可。您可以使用它。它们提供了一种方便的方法,可以将一组只读属性封装到单个对象中,而无需先显式定义类型
因此,只需从Select表达式中跳过Gender
和Count
属性即可
return Json.Encode(Models
.GroupBy(e => e.Gender)
.Select(g => new object[] { g.Key, g.Count()})
.ToArray());
注意
- 如果未在匿名类型中指定成员名称,编译器将为匿名类型成员提供与用于初始化它们的属性相同的名称
- 必须为正在使用表达式初始化的属性提供名称(在您的情况下为
和Gender
)Count
- 您可以使用它。它们提供了一种方便的方法,可以将一组只读属性封装到单个对象中,而无需先显式定义类型
因此,只需从Select表达式中跳过
Gender
和Count
属性即可
return Json.Encode(Models
.GroupBy(e => e.Gender)
.Select(g => new object[] { g.Key, g.Count()})
.ToArray());
注意
- 如果未在匿名类型中指定成员名称,编译器将为匿名类型成员提供与用于初始化它们的属性相同的名称
- 必须为正在使用表达式初始化的属性提供名称(在您的情况下为
和Gender
)Count