I suppose there is the possibility that one computer is used by more than one user, and more than one user could use a particular computer. In that case, it is probably going to be simpler to have a class which holds the information relating a user to a computer. You can then make a List of instances of that class to hold the entire set of information, and being a List, you can easily query it with LINQ, like this:
Option Infer On
Module Module1
Dim computerUsers As New List(Of ComputerUser)
Class ComputerUser
Property ComputerName As String
Property UserName As String
End Class
Sub CreateTestData()
computerUsers = New List(Of ComputerUser)
computerUsers.Add(New ComputerUser With {.ComputerName = "PC1", .UserName = "Fred"})
computerUsers.Add(New ComputerUser With {.ComputerName = "PC2", .UserName = "Jim"})
computerUsers.Add(New ComputerUser With {.ComputerName = "PC3", .UserName = "Jane"})
computerUsers.Add(New ComputerUser With {.ComputerName = "PC1", .UserName = "Jim"})
End Sub
Sub Main()
CreateTestData()
Dim pcName = "PC1"
Dim thisPcUsers = computerUsers.Where(Function(x) x.ComputerName = pcName).Select(Function(y) y.UserName).ToList()
Console.WriteLine(pcName & " is used by: " & String.Join(", ", thisPcUsers))
Dim user = "Jim"
Dim thisUserPCs = computerUsers.Where(Function(x) x.UserName = user).Select(Function(y) y.ComputerName).ToList()
Console.WriteLine(user & " uses computers: " & String.Join(", ", thisUserPCs))
Console.ReadLine()
End Sub
End Module
Which outputs
PC1 is used by: Fred, Jim
Jim uses computers: PC2, PC1
Edit +1 to Seth, whose answer I did not see while I was writing this.
Edit 2 You can use LINQ in various ways, for example to get the users whose names start with "J*":
Dim partialName = "J*"
Dim usersWithWildcard = computerUsers.Where(Function(x) x.UserName Like partialName).ToList()
Console.WriteLine("Users starting with " & partialName)
For Each u In usersWithWildcard
Console.WriteLine(u.UserName)
Next