Как протестировать на Строку = Перечисление. Значение?

В notepad ++ нажмите Ctrl+H, установите режим поиска в "Regular expression", затем используйте шаблон поиска

([^,]+,[^,]+,[^,]+),

и повторите поиск с

\1\n

UPD

используйте шаблон поиска ((?:[^,]+,){500}), если вы хотите использовать 500 элементов вместо 3. Запятые в конце каждой строки можно заменить с помощью шаблона поиска ,$

10
задан Middletone 25 January 2009 в 00:06
поделиться

3 ответа

Существует несколько различных методов, которые связаны:

Enum.GetName(typeof(A), A.C) == "C"
A.C.ToString() == "C"
((A)Enum.Parse(typeof(A), "C")) == A.C

Первые два преобразовывают значение A.C к строковому представлению ("C") и затем сравните его со строкой. Последний преобразовывает строку "C" к типу A, и затем выдерживает сравнение как фактический тип A.

Перечисление для строкового представления: enumValue.ToString() или Enum.GetName(typeof(A), A.C)

Строка к перечислению: (A)Enum.Parse(typeof(A), "C")

Обратите внимание, что ни один из тех не будет действительно работать, если перечисление будет отмечено с FlagsAttribute.

17
ответ дан 3 December 2019 в 14:54
поделиться

Перечисление. Метод синтаксического анализа:

Преобразовывает строковое представление имени или числовое значение одной или нескольких перечислимых констант к эквивалентному перечислимому объекту. Параметр указывает, чувствительна ли операция к регистру.

Вот пример кода VB.NET из MSDN:

Module Example
   Public Sub Main()
      Dim colorStrings() As String = {"0", "2", "8", "blue", "Blue", "Yellow", "Red, Green"}
      For Each colorString As String In colorStrings
         Try
            Dim colorValue As Colors = CType([Enum].Parse(GetType(Colors), colorString, True), Colors)        
            If [Enum].IsDefined(GetType(Colors), colorValue) Or colorValue.ToString().Contains(",") Then 
               Console.WriteLine("Converted '{0}' to {1}.", colorString, colorValue.ToString())
            Else
               Console.WriteLine("{0} is not an underlying value of the Colors enumeration.", colorString)            
            End If                    
         Catch e As ArgumentException
            Console.WriteLine("{0} is not a member of the Colors enumeration.", colorString)
         End Try
      Next
   End Sub
End Module
7
ответ дан 3 December 2019 в 14:54
поделиться

Enum.GetName(typeof(A),enumValue)==stringValue

5
ответ дан 3 December 2019 в 14:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: