Объединение массива массивов в единый отдельный массив с помощью LINQ

#.net #vb.net #linq #distinct

#.net #vb.net #linq #отдельный

Вопрос:

Можно ли это переписать лучше с помощью LINQ? Я разработчик C #, пытающийся мыслить в VB.NET для этого текущего проекта. Это в ASP.NET Веб-формы .vb codebehind:

 Public ReadOnly Property AllowedCategoryIds As Integer()
    Get
        Dim ids = New List(Of Integer)

        For Each group In UserData.Current.AdGroups
            'group.CategoryIDs is Integer() type
            ids.AddRange(group.CategoryIDs)
        Next

        Return ids.Distinct()
    End Get
End Property
  

Ответ №1:

Вы можете использовать SelectMany для выравнивания такой коллекции.

 var array = arrayOfArrays.SelectMany(item => item).Distinct().ToArray(); // C#
Dim array = arrayOfArrays.SelectMany(Function(item) item).Distinct().ToArray() // VB