我希望有一种方便的方法将Phone对象添加到Phone集合中。是否存在某种对象初始化程序语法,我可以使用它来避免以下自定义例程?
我正在使用.NET 3.5
Private Function PhoneNumbersToCollection(ByVal ParamArray phoneNumberArray() As TelephoneNumberType) As TelephoneNumberCollection
Dim PhoneCollection As New TelephoneNumberCollection
For Each phoneNumber As TelephoneNumberType In phoneNumberArray
If phoneNumber IsNot Nothing Then
PhoneCollection.Add(phoneNumber)
End If
Next
Return PhoneCollection
End Function
编辑:
Public Class TelephoneNumberCollection
Inherits System.Collections.ObjectModel.Collection(Of TelephoneNumberType)
答案 0 :(得分:1)
我通常继承List(Of T)
并复制它的构造函数。第三个将做你想要的。如果要排除Nothing元素,可以重写构造函数。
Class TelephoneNumberCollection
Inherits List(Of TelephoneNumberType)
Public Sub New()
End Sub
Public Sub New(capacity As Integer)
MyBase.New(capacity)
End Sub
Public Sub New(collection As IEnumerable(Of TelephoneNumberType))
MyBase.New(collection)
End Sub
End Class
您不是继承List
,但在TelephoneNumberCollection
类中重写这些构造函数只需要很少的工作量。
IList
不是一个类,List
是。
答案 1 :(得分:0)
如果TelephoneNumberCollection实施IList of TelephoneNumberType
,您可以使用AddRange:
PhoneCollection.AddRange(phoneNumberArray)