Например, чтобы получить текст из элемента управления потоком пользовательского интерфейса:
Private Delegate Function GetControlTextInvoker(ByVal ctl As Control) As String
Private Function GetControlText(ByVal ctl As Control) As String
Dim text As String
If ctl.InvokeRequired Then
text = CStr(ctl.Invoke(New GetControlTextInvoker(AddressOf GetControlText), _
ctl))
Else
text = ctl.Text
End If
Return text
End Function
Я знаю, что вы не должны использовать списки для баз данных SQL ...
blockquote>Это неочевидно в современных базах данных. Массивы в Postgres действительно хорошо реализованы и могут облегчить жизнь. В реляционном подходе , описанном @lau , нет ничего плохого, но вы также можете рассмотреть простую структуру, подобную этой
create table routines ( id serial primary key, name text, exercises text[] );
. Пожалуйста, прочитайте . Плохо ли использовать массивы? в базе данных? , чтобы получить больше информации, которая может облегчить принятие правильного решения. Также обратите внимание на этот совет из документации
Массивы не являются наборами; поиск определенных элементов массива может быть признаком неправильного проектирования базы данных. Попробуйте использовать отдельную таблицу со строкой для каждого элемента, который будет элементом массива. Это будет легче для поиска, и, вероятно, лучше масштабируется для большого количества элементов.
BLOCKQUOTE>