Linq:使用Lambda Expression加入+分组

时间:2014-01-27 22:14:30

标签: linq

是否可以在lambda表达式中连接两个集合并按两个集合中的元素进行分组。

例如: 收集/表(1):学生

StudentID    StudentName
1                X
2                Y

类别/表(2):标记

StudentID    Term      Subject      Mark
  1            1       Math         100
  1            1       Physics      90
  1            2       Math         100
  1            2       Physics      100
  2            1       Math         95
  2            1       Physics      85
  2            2       Math         90
  2            2       Physics      100

所以我需要结果集合包含

StudentID     StudentName   Term      Mark
   1              X           1        190
                              2        200
   2              Y           1        180
                              2        190

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用ConcatUnion方法连接两个列表。如果您想要复制值,请使用Concat如果您不使用Union。然后,您可以使用GroupBy按特定属性或密钥对结果进行分组。

您可以在互联网或MSDN上找到大量优秀示例。只需阅读这些方法的文档或查找一些教程。

答案 1 :(得分:0)

您可以使用Enumerable.Concat使用:

var combinedandordered = foo.Concat(bar).OrderBy(it => it.param);

然后你可以使用.Join()。