Я использую побитовое перечисление как источник данных для управления ретранслятором, в котором каждая строка имеет флажок. Когда пользователь сохраняет данные, значения перечисления, соответствующие отмеченным ячейкам, сохраняются в одном поле базы данных.Итерировать через сохраненные значения Побитовое перечисление
Однако, когда пользователь приходит к редактированию данных, очевидно, мне нужно предварительно заполнить ретранслятор существующими значениями. Я могу сделать это в прямом значении, перейдя через возможные значения перечислимого и проверочного ящиков соответственно. Однако в идеале мне бы очень хотелось, чтобы мой код оставался независимым от изменений в данных: поэтому, если я изменил или добавлю значения в Enum, мой код по-прежнему будет работать без изменения кода в моем элементе управления.
Кажется очевидным, что нужно попытаться выполнить итерацию существующих значений в поле перечисления, как только я вернусь из базы данных. Другими словами, если сохраненное значение соответствует двум выборам из нескольких в перечислении, мне нужно пройти через эти два. Однако я не вижу никакого метода или свойства, которые я могу использовать для этого. Может кто-то указать мне верное направление?
Образец ... который может помочь понять это ... заключается в том, что я могу получить какой-то эффект, который я хочу, отбросив его на строку и разбивая ее, но это неуклюжие (comsPrefs - это перечисление)
Dim selectedPrefs As String = comsPrefs.ToString()
Dim splitStr() As String = selectedPrefs.Split(","c)
Dim i As Integer
For i = 0 To splitStr.Length - 1
'do some cool stuff
Next
Возможно, образец кода может прояснить, что вы пытаетесь сделать? –