Страница: 1 |
Вопрос: Параметры элементов массива | Добавлено: 14.01.11 05:05 |
Автор вопроса: ![]() |
Здравствуйте. Подскажите, пожалуйста, как можно решить проблему. Есть, предположим, класс:
Public Class newClass
Private strNickname As String Private intID As Integer Public Property Nickname() As String Get Return strNickname End Get Set(ByVal value As String) strNickname = Value End Set End Property Public Property ID() As Integer Get Return intID End Get Set(ByVal value As Integer) intID = Value End Set End Property Public Overrides Function ToString() As String Return strNickname End Function End Class Есть несколько массивов такого вида: For i = 0 To ubound(X)
ReDim Preserve arrM(i) arrM(i) = New newClass arrM(i).ID = X.Param1 arrM(i).Nickname = X.Param2 Next i Нужна функция, в которую будут передаваться название массива для поиска нужного элемента, параметр и значения параметра для поиска, нечто типа: Public Function Select_Arr(ByVal strArr As Array, ByVal strParam As String, ByVal objKey As Integer) As String
For i As Integer = LBound(strArr) To UBound(strArr) If strArr(i).strParam = objKey Then Select_Arr = i Exit Function End If Next End Function Очевидно, что вот это вот strArr(i).strParam не работает. :) Как правильно передавать в функцию произвольные название массива и параметры элементов массива?
|
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 300-70-6пятьЪ Вопросов: 62 Ответов: 545 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 14.01.11 08:54 |
такая возможность, конечно, есть. но оно будет работать гораздо медленнее, поэтому, лучше напиши пару функций, которые будут осуществлять поиск каждая по своему параметру. В конечном счете у тебя ведь не 100 полей в классе и не по всем требуется поиск.
Далее, в дотнете массивами я так думаю, мало кто пользуется. Я так точно не помню, когда последний раз их юзал. Используй List.
Здесь ты на каждой итерации изменяешь размер массива, это большой удар по производительности. Следует делать так:
ну и если юзаешь дотнет >= 3.5, то проще уже юзать linq, тогда функция поиска по нику будет выглядеть всего лишь вот так:
|
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 1 Ответов: 2 |
Профиль | Цитата | #2 | Добавлено: 14.01.11 12:01 |
Спасибо. Так действительно проще. Если не сложно — напиши все-таки, как реализовать возможность передавать в функцию любое название массива/параметра. Не для реализации, а для ликбеза - вдруг пригодится еще. Ну или просто скажи в каком направлении искать. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 300-70-6пятьЪ Вопросов: 62 Ответов: 545 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 14.01.11 14:55 |
примерно так:
|
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 1 Ответов: 2 |
Профиль | Цитата | #4 | Добавлено: 14.01.11 15:09 |
Skywalker, Спасибо. |
Страница: 1 |
|