From the help:
help said:
$ operator
Returns True (.T.) if a character expression is contained in a
thisform.list1 is the listbox, it's an object, more precisely a conrol and more precisely a listbox. But neither a string expression nor the list of string expressions it displays, those are in thisform.list1.listitems or thisform.list1.list.
To find something in a list of data, usually in a workarea, not in a control proerty or array, the usual suspects are LOCATE/SEEK, ideally accelerated by an index. ASCAN is a function that can find something in an array. Unfortunately the two array properties of the listbox, namely list and listitem, are arrays, but can't be used with array functions. It's only documented for the list property of the listbox:
help said:
You cannot use array functions with the List property. However, if you set the RowSourceType property to 5 (Array) and set the RowSource property to the array of values to be contained in the list, you can use array functions on the array specified in the RowSource property.
And theere you have an inspiration of what to do. You want to find if something is listed, well, then search the data that feeds the listbox, not the listbox itself. So search in the workarea or whatever is the source of the data the listbox displays. You tell nothing baout how your listbox is fed with data,
Get real, you can't expect an answer with as little as you tell about this. It is really straight forward that you tell about the data that feeds this listbox to get the code you need to search that data list, whatever it is.
Chriss