2012-01-05 3 views
2

У меня есть структура «xyz» с тремя строковыми объектами в ней. «foo» «bar» и «abc» Я хочу перебирать структуру и сравнивать имена объектов.VB.NET Итерация через объекты структуры

Structure xyz 
    dim foo as string 
    dim bar as string 
    dim abc as string 
End Structure 

Псевдо:

For each x as object in xyz 
    if x.Name = "foo" then 
     'bang 
    end if 
End each 

Возможно ли это?

+3

Это возможно, но редко (!!!) целесообразно. Скорее, это обычно недостаток в дизайне. Расскажите нам, зачем вам это нужно, чтобы мы могли дать вам оптимальный совет. –

+0

... нет как записано, обязательно. Является ли ваша структура коллекцией объектов? Все объекты будут иметь свойство «Name»? –

+0

@ Konrad Rudolph У меня есть структура с примерно 50 строками, имена которых соответствуют заголовкам столбцов в datatable. Я посылаю datarow функции, которая должна связывать значения соответствующих столбцов с строками в структуре. Есть ли лучший способ обойти это? Jeremy Holovacs нет, это набор строк – Theveloper

ответ

1

Если это всего лишь одно время, вам, вероятно, будет проще использовать словарь вместо этого, но вы можете сделать это с помощью Reflection, если хотите сохранить структуру.

Этот небольшой фрагмент кода будет перечислять каждый член структуры для вас в StringBuilder.

Dim sbOutput As New System.Text.StringBuilder 
Dim t As Type = GetType(xyz) 
For Each p As System.Reflection.FieldInfo In t.GetFields() 
    sbOutput.AppendLine(p.Name) 
Next 
Смежные вопросы