不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
C#匿名对象转为集合
编辑:dnawo 日期:2013-05-22
今天做一个接口时,要求返回数据类型为json对象数组,但服务器端处理后得到的是一个匿名对象,例如:
尝试用dynamic关键字,测试可以实现需求,代码如下:
后来对Linq进行构造,一样可以完成:
对应SQL语句为:
复制内容到剪贴板
程序代码

var detail = new { PayOut = 50, InCome = 100 };
尝试用dynamic关键字,测试可以实现需求,代码如下:
复制内容到剪贴板
程序代码

using (testContext context = new testContext())
{
DateTime date1 = DateTime.Parse("2013-05-20");
DateTime date2 = DateTime.Parse("2013-05-27");
var details = context.AdDetails.Where(d => d.Created >= date1 && d.Created < date2);
var detail = new { PayOut = details.Sum(item => item.PayOut), InCome = details.Sum(item => item.InCome) };
var data = new List<dynamic>() { detail };
Console.WriteLine(new JavascriptSerializer().Serialize(data));
}
{
DateTime date1 = DateTime.Parse("2013-05-20");
DateTime date2 = DateTime.Parse("2013-05-27");
var details = context.AdDetails.Where(d => d.Created >= date1 && d.Created < date2);
var detail = new { PayOut = details.Sum(item => item.PayOut), InCome = details.Sum(item => item.InCome) };
var data = new List<dynamic>() { detail };
Console.WriteLine(new JavascriptSerializer().Serialize(data));
}
后来对Linq进行构造,一样可以完成:
复制内容到剪贴板
程序代码

using (testContext context = new testContext())
{
DateTime date1 = DateTime.Parse("2013-05-20");
DateTime date2 = DateTime.Parse("2013-05-27");
var data = context.AdDetails.Where(d => d.Created >= date1 && d.Created < date2).ToList()
.Select(d => new { PayOut = d.PayOut, InCome = d.InCome, Group = 1 })
.GroupBy(d => d.Group) //关键点
.Select(g => new { PayOut = g.Sum(item => item.PayOut), InCome = g.Sum(item => item.InCome) });
Console.WriteLine(new JavascriptSerializer().Serialize(data));
}
{
DateTime date1 = DateTime.Parse("2013-05-20");
DateTime date2 = DateTime.Parse("2013-05-27");
var data = context.AdDetails.Where(d => d.Created >= date1 && d.Created < date2).ToList()
.Select(d => new { PayOut = d.PayOut, InCome = d.InCome, Group = 1 })
.GroupBy(d => d.Group) //关键点
.Select(g => new { PayOut = g.Sum(item => item.PayOut), InCome = g.Sum(item => item.InCome) });
Console.WriteLine(new JavascriptSerializer().Serialize(data));
}
对应SQL语句为:
复制内容到剪贴板
程序代码

select SUM(PayOut) PayOut, SUM(InCome) InCome from AdDetail where Created>='2013-05-20' and Created<'2013-05-27'






评论: 0 | 引用: 0 | 查看次数: 6395
发表评论
请登录后再发表评论!