8,497
社区成员
发帖
与我相关
我的任务
分享
var result = datasource
.GroupBy(x => x.MsuName)
.Select(g => new
{
MsuName = g.Key,
Accounts = g.OrderBy(y => y.weeknumber)
});
var result = from x in datasource
group x by x.MsuName into g
select new
{
MsuName = g.Key,
Accounts = from y in g
orderby y.weeknumber
select y
};
List<RawWeeklyAccounts> query = new List<RawWeeklyAccounts>()
{
new RawWeeklyAccounts(31,5,"A"),
new RawWeeklyAccounts(32,6,"B"),
new RawWeeklyAccounts(33,-5,"A"),
new RawWeeklyAccounts(34,1,"B"),
new RawWeeklyAccounts(35,5,"B"),
};
var r = query.Where(condition => condition.TotalAccounts > 0 && condition.weeknumber > 0 && !string.IsNullOrEmpty(condition.MsuName)).
OrderByDescending(order => order.weeknumber).GroupBy(groupName => groupName.MsuName).ToList();
class Program
{
static void Main(string[] args)
{
List<RawWeeklyAccounts> list = new List<RawWeeklyAccounts>();
List<WeeklyAccounts> result = list.GroupBy(x => x.MsuName).Select(x =>
{
var temp = x.OrderBy(y => y.weeknumber).FirstOrDefault();
if (temp == null)
return null;
return new WeeklyAccounts()
{
Weeknumber = temp.weeknumber,
TotalAccounts = temp.TotalAccounts
};
}).ToList();
}
}
public class RawWeeklyAccounts
{
public long TotalAccounts { get; set; }
public int weeknumber { get; set; }
public string MsuName { get; set; }
}
public class WeeklyAccounts
{
public int Weeknumber;
public long TotalAccounts; //即原表的WeeklyAccounts。
}
var query = from p in tbs
order by p.weeknumber
group p by p.weeknumber into g
select g;
先排再分组不是一样的效果么...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
};