Итак, у меня есть система enumflag, и мне нужно отфильтровать по Наркотическим, ненаркотическим, психотропным и непсихотропным из выпадающего списка. Я думал о том, чтобы поместить значения в словарь, и они просматривают пакет в списке выбора на внешнем интерфейсе, но у меня возникают проблемы при настройке словаря для регистрации «отсутствия [var]»
Если мой словарь имеет следующую структуру:
private readonly Dictionary<int, string> _medicationDetails = new Dictionary<int, string>
{
{(int)PersonMedicationDescription.MedicationTags.NarcoticDrug, "Narcotic"},
{(int)PersonMedicationDescription.MedicationTags.PsychotropicDrug, "Psychotropic"}
};
Я хочу иметь возможность:
{(int)!PersonMedicationDescription.MedicationTags.NarcoticDrug, "non-Narcotic"},
или что-то в этом роде. Что мне здесь не хватает? Есть ли лучший способ сделать это?
EDIT:
Является ли это правильный путь? Я знаю, как это сделать, если бы это был всего один бул, но как мне заставить обоих заполнить список? Чтобы заставить его работать, я думаю, что это сработает:
ViewBag.IsNarcoticOptions = new[]
{
true,
false
}.ToSelectList(b => b.ToString(), b => b.ToString("Narcotic", "Non Narcotic"));
var isNarcotic = filters.IsNarcotic;
if (isNarcotic.HasValue)
{
query = isNarcotic.Value
? query.Where(rdq => (rdq.MedicationFlags & (int)PersonMedicationDescription.MedicationTags.NarcoticDrug) == (int)PersonMedicationDescription.MedicationTags.NarcoticDrug)
: query.Where(rdq => (rdq.MedicationFlags & (int)PersonMedicationDescription.MedicationTags.NarcoticDrug) == 0);
}
но как это сделать для другого набора true / false?