新手请问一个Linq先分组再排序的有关问题
新手请教一个Linq先分组再排序的问题
我有一个集合IList<RawWeeklyAccounts>:
public class RawWeeklyAccounts
{
public long TotalAccounts { get; set; }
public int weeknumber { get; set; }
public string MsuName { get; set; }
}
我想先按照MsuName分组,对每个分组按照WeekNumber排序,最后返回一个新的Entity:
WeeklyAccounts
{
public int Weeknumber;
public long TotalAccounts; //即原表的WeeklyAccounts。
}
请问LINQ应该怎么写呢?
------解决思路----------------------
------解决思路----------------------
先排再分组不是一样的效果么...
------解决思路----------------------
函数写法跟类SQL的写法,都是Linq机制。不是说只有SQL写法才是Linq。
函数写法主要可以用在非常简单的计算表达上。对于稍微复杂一点的Linq计算公式,它显得不够清晰,不易于书写和维护。
------解决思路----------------------
它的函数式连缀写法是这样的:
我有一个集合IList<RawWeeklyAccounts>:
public class RawWeeklyAccounts
{
public long TotalAccounts { get; set; }
public int weeknumber { get; set; }
public string MsuName { get; set; }
}
我想先按照MsuName分组,对每个分组按照WeekNumber排序,最后返回一个新的Entity:
WeeklyAccounts
{
public int Weeknumber;
public long TotalAccounts; //即原表的WeeklyAccounts。
}
请问LINQ应该怎么写呢?
------解决思路----------------------
List<RawWeeklyAccounts> list;
var q=from r in list.GroupBy(x=>x.MsuName)
order r by r.weeknumber
select new WeeklyAccounts
{
Weeknumber=r.weeknumber,
TotalAccounts=r.TotalAccounts
};
------解决思路----------------------
var query = from p in tbs
order by p.weeknumber
group p by p.weeknumber into g
select g;
先排再分组不是一样的效果么...
------解决思路----------------------
函数写法跟类SQL的写法,都是Linq机制。不是说只有SQL写法才是Linq。
函数写法主要可以用在非常简单的计算表达上。对于稍微复杂一点的Linq计算公式,它显得不够清晰,不易于书写和维护。
------解决思路----------------------
它的函数式连缀写法是这样的:
var result = datasource
.GroupBy(x => x.MsuName)
.Select(g => new
{
MsuName = g.Key,
Accounts = g.OrderBy(y => y.weeknumber)
});