Вы передаете строку, в которой вы указали целое число:
Исправление:
Dim x As New Dictionary(Of Integer, Users)
x.Add(1, New Users(1, "Simon"))
Затем, чтобы показать содержимое:
Dim sb As New StringBuilder
For Each item As KeyValuePair(Of Integer, Users) In x
sb.AppendLine(item.Key & ") " & item.Value.ToString)
Next
MessageBox.Show(sb.ToString())
Ваш класс пользователей будетнеобходимо переопределить функцию ToString
или изменить вызов ToString
для свойства в Users, которое показывает имя пользователя.
Обновление до класса Users:
Public Class Users
Private _p1 As Integer
Private _p2 As String
Sub New(ByVal p1 As Integer, ByVal p2 As String)
_p1 = p1
_p2 = p2
End Sub
Public Overrides Function ToString() As String
Return _p2
End Function
End Class