Я знаю, что его нужно было задавать более двух раз, но я не смог найти подходящий вопрос, чтобы ответить на него.
У меня есть коллекция, из которой я хочу получить массив в .NET 2.0.Другими словами, я хочу преобразовать коллекцию в массив.Пока у меня есть следующее:
Public Class Set(Of T)
Implements IEnumerable(Of T)
Implements ICollection(Of T)
Implements IEqualityComparer(Of T)
Private _set as Dictionary(Of T, Object)
// Implementing the interfaces here...
Public Function ToArray() As Array
Dim arr As Array = Array.CreateInstance(GetType(T), Me.Count)
Me.CopyTo(arr, 0)
Return arr
End Function
End Class
И затем, когда я звоню, мне просто нужно:
Dim propertiesToLoad As CustomSet(Of String) = New CustomSet(Of String)()
// Initializing my CustomSet here...
Dim searcher As DirectorySearcher = New DirectorySearcher()
Dim entry As DirectoryEntry = New DirectoryEntry("LDAP://" & Environment.UserDomain)
searcher.SearchRoot = entry
searcher.SearchScope = SearchScope.Subtree
searcher.Filter = someFilter
searcher.PropertiesToLoad.AddRange(propertiesToLoad.ToArray())
// Launching search here...
Есть ли более эффективный способсделать это в .NET 2.0?
РЕДАКТИРОВАТЬ # 1
Реализации Count и CopyTo в моем CustomSet (Of T):
Public ReadOnly Property Count As Integer Implements ICollection(Of T).Count
Get
Return _set.Keys.Count
End Get
End Property
Public Sub CopyTo(ByVal array As T, ByVal arrayIndex As Integer) Implements ICollection(Of T).CopyTo
_set.Keys.CopyTo(array, arrayIndex)
End Sub