Я знаю, что это правильное перечисление:
Private Enum Months
JANUARY = 1
FEBRUARY = 2
...
End Enum
Однако я хочу иметь перечисление, в котором строка будет состоять исключительно из целых чисел.
Пример:
Private Enum ColumnCounts
01 = 5
02 = 4
03 = 40
End Enum
01, 02 и 03 - все строки.Однако, если я поставлю «01», [01] или просто 01, он скажет, что ожидает конца Enum и что это недопустимое утверждение.Есть ли способ сделать это, что я скучаю?Я даже попробовал.01.ToString (), но это не вариант.:) Любая помощь приветствуется.Спасибо.
Редактировать:
Public Class Part
Private Enum ColumnCounts
f01 = 39
End Enum
Public Shared Function ValidateColumns(ByRef lstFields As List(Of String)) As Boolean
For Each colCount In [Enum].GetValues(GetType(ColumnCounts))
If colCount = "f" + lstFields(1) Then
'Right here I need to compare the count of the list vs. the value of the enum.'
Return True
End If
Next
Return False
End Function
End Class
По сути, я не хотел вставлять f туда, просто хотел сделать 01. То, как это будетПозвонил так:
Select Case (nRecordType)
Case "01"
...
Case "02"
...
Case "03"
Return Part.ValidateColumns(_lstFields)
End Select
Поскольку я не создаю его экземпляр и не вызываю конструктор, нет способа автоматически заполнить словарь.И я не хочу конвертировать в целое число, поэтому я не собираюсь делать массив.Это на всякий случай в конечном итоге значение становится выше 99, и следующее значение будет A0.Я пытаюсь думать о легких будущих изменениях этого и обратной совместимости.Если вам нужны дополнительные объяснения, дайте мне знать.
Редактировать 2:
Это то, что я сделал сейчас, и я думаю, что это должно работать:
Public Class Part
Private Shared columnCounts As Dictionary(Of String, Integer) = New Dictionary(Of String, Integer)
Public Shared Function ValidateColumns(ByRef lstFiels As List(Of String)) As Boolean
InitializeColumnDictionary()
Return lstFields.Count = columnCounts(lstFields(1))
End Function
Private Shared Sub InitializeColumnDictionary()
columnCounts.Add("01", 39)
End Sub
End Class
Я сейчас не в состоянии проверить это, поэтому я не могу убедиться, что он будет делать то, что я хочу, но это не выдает ошибку при сборке, поэтому яскрещиваю пальцы.