I have a list of a few thousand names. I actually have last name, first name, phone number, etc and more info. I'm going to make a class to contain the data. so I'll have like a people object with for example a last name field. I'm going to store these in like an array list. Lets say i have 100 items in array list. Maybe last name smith is on index 3 21 and 63. I'd like a data structure where i can easily search for smith and get indexes 3 21 and 63.

Brute force is simply loop through complete array checking last name and grabbing index each time i find smith. Ideally id like to have more efficiency. In c++ I'd use a multi map but i don't see that that exists in vb.net. A dictionary wont work because its 1:1.

Name of data structure, short description of how to use it and web help reference page would be nice.

8 Years
Discussion Span
Last Post by adams161

You could add an "ID" property of type Integer to your peopleClass and then doing a LINQ query like:

Dim var = (From p as peopleClass in myArray where p.LastName="Smith" Select p.ID)

var will then hold all matching ID's.

Edited by GeekByChoiCe: n/a

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.