Метод TryParse
Статический TryParse принимает строку
и аргумент out для результата типа
перечисления. При успехе возвращает true
и записывает значение; при неудаче - false.
Для разбора без проверки используют
Parse,
который бросает ArgumentException.
Синтаксис
bool ok = Enum.TryParse<Mark>("Read", out Mark res);
Пример
Давайте успешно разберём строку "Read":
using System;
enum Mark { None = 0, Read = 1, Write = 2 }
class Program
{
static void Main()
{
bool ok = Enum.TryParse<Mark>("Read", out Mark res);
Console.WriteLine(ok);
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
"Read"
Пример
Давайте передам строку "abcde":
using System;
enum Mark { None = 0, Read = 1, Write = 2 }
class Program
{
static void Main()
{
bool ok = Enum.TryParse<Mark>("abcde", out Mark res);
Console.WriteLine(ok);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
"None"
Пример
Давайте запишем результат только при успешном разборе:
using System;
enum Mark { None = 0, Read = 1, Write = 2 }
class Program
{
static void Main()
{
string text = "Write";
Mark res = Mark.None;
if (Enum.TryParse<Mark>(text, out Mark parsed))
{
res = parsed;
}
Console.WriteLine(res);
}
}
Результат выполнения кода:
"Write"