Как выводить значение по умолчанию, если оно не найдено?
Есть перечисление, по которому пользователь может искать предмет. Если пользователь в query впишет что-то другое, которого нет в перечислении -> ему должно найти предмет по Label. что-то вообще туплю. property всегда будет равно первом итему в перечислении. Потом даже если description будет первым, то его Label перетрёт.
private enum AvailablePropertyList {
Label, Description
};
foreach (var property in Enum.GetNames(typeof(AvailablePropertyList)))
{
if (property != AvailablePropertyList.Label.ToString() ||
property != AvailablePropertyList.Description.ToString())
{
filter.SearchBy = AvailablePropertyList.Label.ToString();
}
}
Как мне тогда логику сделать, что если введеного значения нет - вывести Label по умолчанию?
Ответы (1 шт):
Что-то вы перемудрили, и query о котором вы говорите нигде нет
Enum.TryParse<AvailablePropertyList>(query, out var property);
filter.SearchBy = property.ToString();
Вот и всё.
Как это работает: out var property присваивается значение по умолчанию, если оно не найдено, а значение по умолчанию - это 0 для перечисления, потому что оно неявно наследует тип int, а значению 0 соответствует первое значение перечисления, если оно не указано явно, а первое значение здесь - Label. То есть то что вам нужно.