[英]What is the best way to get the percentage for an object in linq list and map it to JSON?
作为linq
中的join
的结果,我得到了一个RoleViewModel对象列表。 我想要做的是获取列表中每个WorkRole的百分比,并将工作角色的百分比和名称映射到json。
所以,如果我在var list
总共有两个对象 - 一个具有RoleName“Role1”而另一个具有RoleName“Role2”,那么获得JSON的最佳方式是:
myObj = {
"rolename":"Role1",
"perc":50
},
{
"rolename":"Role2",
"perc":50
},
这是我的列表的查询:
var list= list1.
Join(db.WorkRolesUsersDetails,
o => o.WorkRoleId, od => od.WorkRoleId,
(o, od) => new
{
WorkRoleId = o.WorkRoleId,
RoleName = o.RoleName,
RoleDescription = o.RoleDescription,
CompanyId = o.CompanyId,
WRUDId = od.WRUDId,
UserDetailsId = od.UserDetailsId,
FocusStart = od.FocusStart,
FocusEnd = od.FocusEnd
}).ToList()
.Select(item => new RoleViewModel(
item.WorkRoleId,
item.RoleName,
item.RoleDescription,
item.CompanyId,
item.WRUDId,
item.UserDetailsId,
item.FocusStart,
item.FocusEnd)).ToList();
那么,关于如何以最好和最简单的方式做我想做的任何提示? 我是c#的新手。
它应该像那样工作:
var perclist = list.GroupBy(i=>i.RoleName)
.Select(i=>
new {
rolename=i.Key,
perc = ((double)(i.Count()) / (double)(list.Count()) )*100
});
var json = JsonConvert.SerializeObject(perclist);
我用Json.NET进行序列化
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.