你好,有没有办法像这样编写代码:
var r = from i in myList
group i by i.Number
into grp
select new
{
Reported = grp.Select(x => x.CurrentStatus).First(),
Number = grp.Key,
Sum = grp.Sum(x => x.Details[0].Quantity),
Name = grp.Select(x => x.Name).First(),
Details = grp.Select(x => x.Details).First(),
Descriptions = grp.Select(x => x.Descriptions).First(),
AssignmentId = grp.Select(x => x.AssignmentId).First(),
Listor = grp.Select(x => x.Number).Count()
};
转换成这样
var r = from i in myList
group i by i.Number, i.CurrentStatus
into grp
select new
{
Reported = grp.Select(x => x.CurrentStatus).First(),
Number = grp.Key,
Sum = grp.Sum(x => x.Details[0].Quantity),
Name = grp.Select(x => x.Name).First(),
Details = grp.Select(x => x.Details).First(),
Descriptions = grp.Select(x => x.Descriptions).First(),
AssignmentId = grp.Select(x => x.AssignmentId).First(),
Listor = grp.Select(x => x.Number).Count()
};
这样我就可以按照“按照 i.Number 和 i.CurrentStatus 分组”进行分组。
Reported = grp.Key.CurrentStatus
代替Reported = grp.Select(x => x.CurrentStatus).First()
。 - Jaroslav Jandek