ASP C # Запрос DayOfWeek в форме INT, как разбить его на дни? - PullRequest
1 голос
/ 02 декабря 2011

Хорошо, у меня было это перечисление

public enum DaysOfWeek
{
    [EnumMember]
    Monday = 1,
    [EnumMember]
    Tuesday = 2,
    [EnumMember]
    Wednesday = 4,
    [EnumMember]
    Thursday = 8,
    [EnumMember]
    Friday = 16,
    [EnumMember]
    Saturday = 32,
    [EnumMember]
    Sunday = 64
}

Это перечисление сохраняется в БД как INT.Они вставляются через флажок, поэтому, например, если я проверю понедельник и вторник, они будут сохранены как 3 (1 + 2) в соответствии с их общей суммой.

Теперь я хотел бы запросить эти данные, и только с выводом 3, как я могу преобразовать их обратно в день, понедельник и вторник.

1 Ответ

1 голос
/ 02 декабря 2011

Вам нужно украсить ваше перечисление с помощью FlagsAttribute, чтобы можно было правильно установить его.

[Flags]
public enum DaysOfWeek
{
    [EnumMember]
    Monday = 1,
    [EnumMember]
    Tuesday = 2,
    [EnumMember]
    Wednesday = 4,
    [EnumMember]
    Thursday = 8,
    [EnumMember]
    Friday = 16,
    [EnumMember]
    Saturday = 32,
    [EnumMember]
    Sunday = 64
}

Тогда настройка 3 будет означать, что были выбраны Monday и Tuesday.

Это выведет Monday, Tuesday:

Console.WriteLine(((DaysOfWeek)3).ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...