такая возможность, конечно, есть. но оно будет работать гораздо медленнее, поэтому, лучше напиши пару функций, которые будут осуществлять поиск каждая по своему параметру. В конечном счете у тебя ведь не 100 полей в классе и не по всем требуется поиск.
Далее, в дотнете массивами я так думаю, мало кто пользуется. Я так точно не помню, когда последний раз их юзал. Используй List.
For i = 0 To ubound(X)
ReDimPreserve arrM(i)
Здесь ты на каждой итерации изменяешь размер массива, это большой удар по производительности.
Следует делать так:
Dim arrM AsNew List(Of newClass)
For i AsInteger = 0 to x.Count 'x - тоже сделать List, ну или хотя бы x.Length, т.к. ubound(x) - это устаревшая конструкция vb6
Dim newElement AsNew newClass()
newElement.ID = x.Param1
newElement.Nickname = x.Param2
arrM.Add(newElement)
Next
ну и если юзаешь дотнет >= 3.5, то проще уже юзать linq, тогда функция поиска по нику будет выглядеть всего лишь вот так:
PublicFunction findByNickname(ByVal list As List(Of newClass), ByVal nick AsString) As List(Of newClass)
Спасибо. Так действительно проще. Если не сложно — напиши все-таки, как реализовать возможность передавать в функцию любое название массива/параметра. Не для реализации, а для ликбеза - вдруг пригодится еще. Ну или просто скажи в каком направлении искать.