0

我用明确的错误报告来结束我的 ajax 复制和粘贴。

最后Function Returns 三个Keys 与三个Lists 为Values。

Return New Dictionary(Of String, List(Of Object)) From {
    {"duplicatePoints", UniqueErrorsReport},
    {"inexistentPoints", ExistenceErrorsReport},
    {"insertedRows", InsertedRows}
}

两个是List(Of Object)s,一个是 a List(Of Array)。我讨厌做同样的事情两次,所以我不想使用Structure.

我通过声明 aList(Of Array)而不是 aList( Of Object())会让我从Array下降Object(如果我没看错的话)滑落,我表现得非常聪明和思考。不,至少不是我这样做的方式:

Unable to cast object of type 'System.Collections.Generic.List`1[System.Array]' 
 to type 'System.Collections.Generic.List`1[System.Object]' 

是否可以避免在同一容器中使用 aStructure和简单Return的非多维和多维容器作为Values KeyValue容器?

4

1 回答 1

1

是否可以避免使用结构并简单地将非多维和多维的容器作为值返回到同一键:值容器中?

不,这是不可能的。您必须将数组转换为列表或将列表转换为数组。这就像您尝试将整数和字符串存储在同一个 List(Of String) 中一样。您不能在同一个Generic.List.


除非您有动态结果,否则我会尽量避免在此处使用字典,而是使用自定义类(如下所示):

Public Class ErrorReport
 Public DuplicatePoints as List(Of UniqueErrorsReport)
 Public InexistentPoints as List(Of ExistenceErrorsReport)
 Public InsertedRow as List(Of InsertedRow)
End Class

我强烈建议不要使用 List(Of Object),因为它们会降低您的性能(装箱和拆箱),更重要的原因是:它容易出错,因为您无法在编译时检测到错误。

于 2013-07-25T21:34:17.893 回答