PropertyPolicy是一个类,定义了几个字段/实体的集合。有时需要两个单独的函数来构建集合。 (LoadEstateAIN和LoadAIN)。我需要结合两个类的结果,但是尝试了concat但得到了强制转换异常。什么会在这里工作?
emailField.sendKeys(Key.BACKSPACE)
答案 0 :(得分:0)
Concat的结果不是数组;它是IEnumerable(Of T)
。在您的情况下,它是IEnumerable(Of Entity)
。如果您想将其分配回数组,只需在Concat的末尾添加ToArray()
。
propTempComb.AINInsured = propTemp1.AINInsured.Concat(propTemp2.AINInsured).ToArray()
破坏这行代码:
[instance3].[property] = [instance1].[property].Concat([instance2].[property])
将Concat的结果分配给该属性,但是该属性是一个数组,因此您需要将IEnumerable(Of Entity)的Concat的结果更改为与ToArray无关紧要的数组。
我可以进一步建议您不要将数组用作公共成员,而应该将其用作IEnumerable。此外,对于某些公共/公共属性,自动属性将是一个更好的选择。
Public Class PropertyPolicy
Private aininsuredfield As Entity()
Private claimsfield As Claims()
Public Property Agent As Entity
Public Property BillingInfo As BillingInfo
Public Property CancellationDate As Date
Public Property AINInsured() As IEnumerable(Of Entity)
Get
Return aininsuredfield
End Get
Set(value As IEnumerable(Of Entity))
aininsuredfield = value.ToArray()
End Set
End Property
Public Property Claims() As IEnumerable(Of Claims)
Get
Return claimsfield
End Get
Set(value As IEnumerable(Of Claims))
claimsfield = value.ToArray()
End Set
End Property
End Class
顺便说一句,这会使您的原始代码在没有ToArray()的情况下工作
propTempComb.AINInsured = propTemp1.AINInsured.Concat(propTemp2.AINInsured)