Combining array of arrays into single, distinct array using LINQ
Can this be rewritten any better using LINQ? I'm a C#er try开发者_开发问答ing to think in VB.NET for this current project. It's in an ASP.NET Web Forms .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
You can use SelectMany
to flatten such a collection.
var array = arrayOfArrays.SelectMany(item => item).Distinct().ToArray(); // C#
Dim array = arrayOfArrays.SelectMany(Function(item) item).Distinct().ToArray() // VB
精彩评论