LINQ "GroupBy" добавляет пустой объект - PullRequest
1 голос
/ 14 июля 2020

Недавно я столкнулся со странным поведением LINQ, и мне трудно найти лог c за ним.

Я объявил список, содержащий 3 структуры, а затем применил .GroupBy к этому списку. Элементы группируются, но он также добавляет в список пустую структуру.

Вот пример:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Dim lstTest As New List(Of structTest)
    lstTest.Add(New structTest With {.intIndex = 1, .strValue = "some value"})
    lstTest.Add(New structTest With {.intIndex = 1, .strValue = "some other value"})
    lstTest.Add(New structTest With {.intIndex = 1, .strValue = "another value"})

    Dim result As IEnumerable(Of IGrouping(Of UInteger, structTest)) = lstTest.GroupBy(Function(x) x.intIndex).ToList()

End Sub

Structure structTest
    Dim intIndex As UInteger
    Dim strValue As String
End Structure

Если я проверю переменную result с помощью Visual Studio, как это выглядит:

введите описание изображения здесь

Свойство .Count равно 3, но в списке 4 элемента, и последний элемент является пустым.

Мой вопрос: зачем нужен дополнительный элемент?

...