Visual Basic中的可移植模式功能

代理人

我试图使我的Mode函数接受任何类型的数组,但没有取得任何进展。这是我现在得到的:

Private Function Mode(ByRef list As Object) As Object
        Dim array() As Object = {}
        Try
            array = CType(list, Object())
        Catch ex As Exception
            MessageBox.Show("Failed to cast array of Objects in Mode function!")
            Return Nothing
        End Try
        Dim uniqueObjects() As Integer = {array(0)}
        Dim frequency() As Integer = {1}
        For i As Integer = 0 To array.Length - 1
            For j As Integer = 0 To uniqueObjects.Length - 1 'loop through frequency
                If array(i) = uniqueObjects(j) Then
                    frequency(j) += 1
                    Exit For
                ElseIf j = uniqueObjects.Length - 1 Then
                    ReDim Preserve uniqueObjects(uniqueObjects.Length) 'add to unique objects array
                    uniqueObjects(uniqueObjects.Length - 1) = array(i)
                    ReDim Preserve frequency(frequency.Length) 'increment frequency
                    frequency(frequency.Length - 1) += 1
                End If
            Next
        Next

        Return uniqueObjects(System.Array.IndexOf(frequency, frequency.Max))
    End Function

我通常会摆脱对它的缓慢调用,CType而只是将Objects数组传递给函数,但是当我将整数数组传递给函数时,这给了我一个奇怪的错误:

错误1由于“整数”不是引用类型,因此无法将类型“整数的一维数组”的值转换为“对象的一维数组”。{filename} .vb {line} {column} {project name}

事实证明,这比我预期的要复杂得多。谁能提供建议?

比昂·罗格·克林佐(Bjørn-RogerKringsjå)

如何使其成为通用函数?

Private Function Mode(Of T)(ByRef array As T()) As Object
    '...
End Function

或者

Private Function Mode(Of T)(ByRef array As T()) As T()
    '...
End Function

然后,您执行以下操作:

Dim obj As Object = Mode(Of Integer)({0, 1, 2, 3})

或者:

Dim obj As Integer() = Mode(Of Integer)({0, 1, 2, 3})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Visual Basic设置文件

来自分类Dev

Visual Basic MsgBox退出

来自分类Dev

Visual Basic中变量的增量

来自分类Dev

Visual Basic拖放窗口

来自分类Dev

Visual Basic多个if功能一次

来自分类Dev

Visual Basic for Applications中的文本模板引擎/功能

来自分类Dev

在Visual Basic中逗号的功能

来自分类Dev

如何在Visual Basic中定义可空类型属性

来自分类Dev

WebBrowser Visual Basic

来自分类Dev

Visual Basic解析

来自分类Dev

Visual Basic 6中的折叠/折叠功能和子例程

来自分类Dev

如何通过Visual Studio构建可移植程序

来自分类Dev

在Visual Basic中解析XML

来自分类Dev

Visual Basic查询

来自分类Dev

visual studio:如何在Visual Basic中读取设置

来自分类Dev

Excel中的Visual Basic代码

来自分类Dev

Visual Basic中的矩阵

来自分类Dev

覆盖Visual Basic中的文件

来自分类Dev

Visual Basic中的计算

来自分类Dev

Visual Basic中变量的增量

来自分类Dev

Visual Basic拆分功能

来自分类Dev

Visual Basic中的XPath

来自分类Dev

如何通过Visual Studio构建可移植程序

来自分类Dev

在Visual Basic中编写XML

来自分类Dev

Visual Studio Express(Visual Basic)中的Excel.Application错误

来自分类Dev

如何在C#Visual Studio 2015中制作可移植程序?

来自分类Dev

使用 Visual Studio 项目使 Opencv 可移植并消除链接错误

来自分类Dev

在 Visual Basic 6 中查询

来自分类Dev

在 Visual Basic 中解析 XML