试试这个:
courses.GroupBy(c => c.CourseID)
.Select(g => new
{
Id = g.Key,
Months = String.Join(", ", g.Select(c => c.Month).ToArray())
});
Run Code Online (Sandbox Code Playgroud)
如果您使用的是.NET 4.0,则不需要ToArray调用,因为String.Join有一个新的重载来获取IEnumerable.
解释这是如何工作的:
首先,您按CourseID对课程组进行分组.这将返回一个IEnumerable<IGrouping<int, Course>>
- 枚举中的每个元素都包含一个名为Key的属性 - 这是分组到其中的所有课程的CourseID.
这个位是关键:IGrouping也是一个IEnumerable<Course>
- 这意味着它可以通过返回在Key中保存的ID下分组的每个元素进行迭代.
最后一部分是选择一个具有两个属性Id和Months的新匿名类型:
归档时间: |
|
查看次数: |
219 次 |
最近记录: |