Hi Dennis, is far as I remember, you have to do it because otherwise you can
get the wrong index returned.
Or as stated in the msdn:
"If comparer is provided, the elements of the ArrayList are compared to the
specified value using the specified IComparer implementation. If the
ArrayList is not already sorted according to the sort order defined by
comparer, the result might be incorrect."
you can try it for yourself, if you remove the
arrList.Sort(CaseInsensitiveComparer.Default) from my small example you
should get the wrong result.
Hth Greetz Peter
--
Programming today is a race between software engineers striving to build
bigger and better idiot-proof programs, and the Universe trying to produce
bigger and better idiots. So far, the Universe is winning.
"Dennis" <(E-Mail Removed)> schreef in bericht
news

891F9E9-68B4-41CB-912C-(E-Mail Removed)...
> Just curious as to why you have to sort the arraylist first...trying to
learn
> all I can and don't undetstand?
> --
> Dennis in Houston
>
>
> "Peter Proost" wrote:
>
> > If it doesn't mattter that the items are sorted after you've added them
you
> > can use the CaseInsensitiveComparer and binarysearch, but this only
works if
> > you sort the arraylist with the same
> > Icomparer(CaseInsensitiveComparer.Default) as you want to use for your
> > binarysearch.
> >
> > Hth Greetz Peter
> >
> > Dim arrList As New ArrayList
> >
> > arrList.Add("One")
> > arrList.Add("tWo")
> > arrList.Add("thRee")
> > arrList.Sort(CaseInsensitiveComparer.Default)
> > MsgBox(arrList.BinarySearch("three",
> > CaseInsensitiveComparer.Default))
> >
> > --
> > Programming today is a race between software engineers striving to build
> > bigger and better idiot-proof programs, and the Universe trying to
produce
> > bigger and better idiots. So far, the Universe is winning.
> >
> >
> > "Matt" <(E-Mail Removed)> schreef in bericht
> > news:(E-Mail Removed)...
> > > Oops. that loop wont finish when its supposed to.
> > >
> > > after the line: indexof = al.IndexOf(obj)
> > > you will to put: exit for
> > >
> > >
> > > Matt wrote:
> > > > There is no way i know of that allows you to do a textual compare on
> > > > aray objects unfortunatly. You could use the command lcase or ucase
to
> > > > convert both strings to lower or upper case before you compare.
> > > >
> > > > example:
> > > >
> > > > dim al as new arraylist
> > > > al.add("one")
> > > > al.add("two")
> > > >
> > > > dim x as integer = al.indexof(lcase("ONE"))
> > > >
> > > > but in this case, if you have al.add("oNe") then i guess it wont
work.
> > > > you could always do al.add(lcase("oNe")).
> > > >
> > > > or you could use this simple search pattern instead to overcome that
> > > > problem. hopefully your arraylist isnt too big, otherwise this would
> > > > take a while.
> > > >
> > > > Public al As Collections.ArrayList
> > > > Private obj As Object
> > > > Private strtest As String
> > > > Private indexof As Integer
> > > >
> > > > Public Sub mysub()
> > > > al.Add("hello")
> > > > strtest = "HeLLo"
> > > >
> > > > For Each obj In al
> > > > If LCase(CStr(al.Item(al.IndexOf(obj)))) =
LCase(strtest)
> > Then
> > > > indexof = al.IndexOf(obj)
> > > > End If
> > > > Next
> > > > End Sub
> > > >
> > > >
> > > > Please dont hit me if it doesnt work. i havnt tested it!
> > > >
> > > > Hope this helps. Matt
> > > >
> > > > JohnR wrote:
> > > >
> > > >> I have an arraylist of string values. I would like to search the
> > > >> arraylist to find the index of a particular string and I would like
> > > >> the search to be case insensitive.
> > > >>
> > > >> dim al as new arraylist
> > > >> al.add("one")
> > > >> al.add("two")
> > > >>
> > > >> dim x as integer = al.indexof("ONE") I would like this to find
the
> > > >> match and return 0
> > > >>
> > > >> Is there a way to make this happen?
> > > >>
> > > >> John
> > > >>
> >
> >
> >