Solved

VB.NET 1.1 - efficient way to search in an array List of objects

Posted on 2009-05-13
1
1,228 Views
Last Modified: 2013-11-07
--------------------------------------------------------------------------------------------------------------------------------
Vb.net 1.1 -Searching an object item inside an array list of objects
--------------------------------------------------------------------------------------------------------------------------------
Is there an efficient and fast way to search an object item inside an array list of objects in .net 1.1? In details&..
I have a class like (See Code Below) -
Public Class MyClass1

    Private MyID As String = ""

    Private MyName As String = ""

    Private MyAddress As String = ""
 

    Public Property ID() As String

        Get

            Return MyID

        End Get

        Set(ByVal Value As String)

            MyID = Value

        End Set

    End Property
 

    Public Property Name() As String

        Get

            Return MyName

        End Get

        Set(ByVal Value As String)

            MyName = Value

        End Set

    End Property
 

    Public Property Address() As String

        Get

            Return MyAddress

        End Get

        Set(ByVal Value As String)

            MyAddress = Value

        End Set

    End Property

End Class

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

And I want to search by Name say 'MyFirstName' from an array list of objects of type MYClass1 as -

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 Dim arrlMyClass1 As ArrayList		'a large array list of objects of type MyClass1

 Dim objMyObject As New MyClass1

 Dim MyID As String = ""
 

 For Each objMyObject In arrlMyClass1

     If Trim(LCase("MyFirstName")) = Trim(LCase(objMyObject.Name)) Then

        MyID = objMyObject.ID

        Exit For

     End If

 Next

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I am looking for an efficient search method to replace the above to search an object by item Name - say 'MyFirstname'. The For each loop is taking a lot of time if the array list is large.

Open in new window

0
Comment
Question by:Gurunathans
1 Comment
 
LVL 10

Accepted Solution

by:
MaxOvrdrv2 earned 500 total points
ID: 24376139
because you declared it as a class, there is no efficient way of doing that...

however, you could always define a function in your class that does it for you.. something like this:
Public Class MyClass1

Public Function Find(ByVal Lst AS ArrayList, ByVal FN AS String) As String

Dim Itm AS ListItem

Dim retval as String

For Each Itm In arrlMyClass1

If Trim(LCase(FN)) = Trim(LCase(Itm.Name)) Then

  retval="Person Found!"

End If

Next

if retval="" then

  return "Not Found!"

else

  return retval

end if

End function

Open in new window

0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now