【发布时间】:2011-03-12 10:16:33
【问题描述】:
我知道它肯定被问了两次以上,但我找不到任何适用的问题来回答这个问题。
我有一个集合,我希望从 .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
我的 CustomSet(Of T) 中 Count 和 CopyTo 的实现:
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
【问题讨论】:
标签: c# vb.net arrays collections .net-2.0