LINQ:具有多个列的GroupBy无法正常工作

时间:2019-01-07 08:04:57

标签: vb.net linq

我在ListBy上遇到一些问题。假设我们有54个类型的项目:

Public Class CourseDetailData
    Public Disp As String
    Public CourseName As String
    Public CourseIdNo As String
    Public DisplayOrder As String
    Public InOutType As String
    Public HoleIdNo As String
    Public ParNo As String
    Public HandicapNo As String
    Public HoleImg As String
    Public HoleDesc As String
    Public DrivingRecFlag As String
    Public NearpinRecFlag As String
    Public TeePosType As String
    Public TeeNo As String
    Public YardNo As String
End Class

这是SQL结果(我的代码将结果放入对象中):

disp, course_name, course_id_no, display_order, inout_type, hole_id_no, par_no, handicap_no, hole_img, hole_desc, driving_rec_flag, nearpin_rec_flag, tee_pos_type, tee_no, yard_no

'0', 'Course1', '1', '1', '1', '1', '5', '1', NULL, NULL, '1', '1', 'Blue Tee24', '3', '1'
'0', 'Course1', '1', '1', '1', '2', '5', '2', NULL, NULL, '1', '1', 'Blue Tee24', '3', '1'
'0', 'Course1', '1', '1', '1', '3', '5', '3', NULL, NULL, '1', '1', 'Blue Tee24', '3', '1'
'0', 'Course1', '1', '1', '1', '4', '5', '4', NULL, NULL, '1', '1', 'Blue Tee24', '3', '1'
'0', 'Course1', '1', '1', '1', '5', '3', '5', NULL, NULL, '1', '1', 'Blue Tee24', '3', '1'
'0', 'Course1', '1', '1', '1', '6', '3', '6', NULL, NULL, '1', '1', 'Blue Tee24', '3', '1'
'0', 'Course1', '1', '1', '1', '7', '3', '7', NULL, NULL, '1', '1', 'Blue Tee24', '3', '1'
'0', 'Course1', '1', '1', '1', '8', '3', '8', NULL, NULL, '1', '1', 'Blue Tee24', '3', '1'
'0', 'Course1', '1', '1', '1', '9', '4', '9', NULL, NULL, '1', '1', 'Blue Tee24', '3', '1'
'0', 'Course1', '1', '1', '1', '1', '5', '1', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '1', '2', '5', '2', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '1', '3', '5', '3', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '1', '4', '5', '4', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '1', '5', '3', '5', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '1', '6', '3', '6', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '1', '7', '3', '7', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '1', '8', '3', '8', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '1', '9', '4', '9', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '1', '1', '5', '1', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '1', '2', '5', '2', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '1', '3', '5', '3', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '1', '4', '5', '4', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '1', '5', '3', '5', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '1', '6', '3', '6', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '1', '7', '3', '7', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '1', '8', '3', '8', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '1', '9', '4', '9', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '2', '10', '4', '10', NULL, NULL, '1', '1', 'Blue Tee', '3', '2'
'0', 'Course1', '1', '1', '2', '11', '4', '10', NULL, NULL, '1', '1', 'Blue Tee', '3', '2'
'0', 'Course1', '1', '1', '2', '12', '4', '10', NULL, NULL, '1', '1', 'Blue Tee', '3', '2'
'0', 'Course1', '1', '1', '2', '13', '4', '10', NULL, NULL, '1', '1', 'Blue Tee', '3', '2'
'0', 'Course1', '1', '1', '2', '14', '4', '10', NULL, NULL, '1', '1', 'Blue Tee', '3', '2'
'0', 'Course1', '1', '1', '2', '15', '4', '10', NULL, NULL, '1', '1', 'Blue Tee', '3', '2'
'0', 'Course1', '1', '1', '2', '16', '4', '10', NULL, NULL, '1', '1', 'Blue Tee', '3', '2'
'0', 'Course1', '1', '1', '2', '17', '4', '10', NULL, NULL, '1', '1', 'Blue Tee', '3', '2'
'0', 'Course1', '1', '1', '2', '18', '4', '10', NULL, NULL, '1', '1', 'Blue Tee', '3', '2'
'0', 'Course1', '1', '1', '2', '10', '4', '10', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '2', '11', '4', '10', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '2', '12', '4', '10', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '2', '13', '4', '10', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '2', '14', '4', '10', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '2', '15', '4', '10', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '2', '16', '4', '10', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '2', '17', '4', '10', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '2', '18', '4', '10', NULL, NULL, '1', '1', 'White Tee', '2', '2'
'0', 'Course1', '1', '1', '2', '10', '4', '10', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '2', '11', '4', '10', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '2', '12', '4', '10', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '2', '13', '4', '10', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '2', '14', '4', '10', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '2', '15', '4', '10', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '2', '16', '4', '10', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '2', '17', '4', '10', NULL, NULL, '1', '1', 'Red Tee', '1', '3'
'0', 'Course1', '1', '1', '2', '18', '4', '10', NULL, NULL, '1', '1', 'Red Tee', '1', '3'

这是我的LINQ请求(非常简单,但是我在GroupBy之后用Select尝试了很多其他尝试,但没有成功。我认为这个请求可以完成工作)

Dim test = courseDetailList.GroupBy(Function(x) New With {x.CourseIdNo, x.InOutType})

For Each t In test
    Console.WriteLine($"{t.Key.CourseIdNo} {t.Key.InOutType}")
Next

但这是结果:

1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2

我想按CourseId和InOutType进行分组,但似乎返回了54个不同的分组(而不是2个)。

我阅读了有关StackOverflow(及其他)的相关问题,该问题解释了如何执行多列GroupBy,但看来我是唯一遇到此问题的人。

我试图将CourseIdNo和InOutType类型更改为Integer,但是没有更改(以前的开发人员将所有属性编码为String ...)。

能帮我吗?

0 个答案:

没有答案