使用LINQ将数组数组合成单个不同的数组

Dot*_*ion 7 .net linq vb.net distinct

使用LINQ可以更好地重写吗?我是一名C#,试图在VB.NET中思考当前这个项目.它位于ASP.NET Web Forms .vb代码隐藏中:

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
Run Code Online (Sandbox Code Playgroud)

Ant*_*ram 34

您可以使用它SelectMany来展平这样的集合.

var array = arrayOfArrays.SelectMany(item => item).Distinct().ToArray(); // C#
Dim array = arrayOfArrays.SelectMany(Function(item) item).Distinct().ToArray() // VB
Run Code Online (Sandbox Code Playgroud)