Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 703
  • Last Modified:

.net find items in structure arraylist

how can I find the index of an item in an arraylist of structures?

Private Structure _struct
        Public id As Long
        Public title As String
End Structure
Private _structArr As ArrayList

so how do I find an item in the array with an specific id?
in a normal arrayList it's
index = _structArr.IndexOf(id-to-find)

thanks!
0
reinoutkool
Asked:
reinoutkool
1 Solution
 
Todd GerbertIT ConsultantCommented:
I would use a List(Of _struct) instead of an ArrayList in this case:

Module Module1
    Public Structure _struct
        Public id As Long
        Public title As String
    End Structure
    Sub Main()
        Dim s1, s2, s3 As _struct

        s1.id = 0
        s1.title = "Zero"

        s2.id = 1
        s2.title = "One"

        s3.id = 3
        s3.title = "Three"


        Dim _structArray As New List(Of _struct)
        _structArray.AddRange({s1, s2, s3})

        Dim idToFind = 1
        Dim indexOfItemWithId1 = _structArray.FindIndex(Function(obj As _struct) obj.id = idToFind)

        Console.WriteLine(indexOfItemWithId1.ToString())
        Console.ReadKey()
    End Sub

End Module

Open in new window

0
 
joriszwaenepoelCommented:
Use a "List(Of _struct)"

Then use LINQ (requires .NET 3.5) to fin the correct item:

dim _structList  as New Lis(of _struct)
' ....
dim item = (From s in _structList where s.Id = 7).Single

0
 
reinoutkoolAuthor Commented:
What if I have .net 2.0?
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
Todd GerbertIT ConsultantCommented:
I was gonna post the LINQ suggestion too, but then noticed you specifically asked to know the index of the item in the array, not to get the item itself. ;)
Anywho...consider upgrading your project to 3.5 (LINQ is pretty handy), or refer to http:#33737422
0
 
nffvrxqgrcfqvvcCommented:
The only thing you didn't mention is if the ID value is going to be unique... If the ID isn't unique do you require obtaining multiple objects with the same ID? Something to consider...
If the ID is unique you could also use a Dictionary(Of Long, Object) and then search by the key...
0
 
reinoutkoolAuthor Commented:
partial solution
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now