2016-12-09 6 views
2

데이터베이스에 SelectedDays라는 int 유형의 열이 있습니다. 사용자가 일, 월을 선택비트 필드 (Selected Days에 사용됨)를 읽고 C에서 값을 결정합니다.

sun=1, mon=2, tue=4, wed=8, thu=16, fri=32, sat=64 

경우, 수요일은 다음 필드의 값은 내가 읽기 전용 속성을 만들려고 노력하고 내 C# 모델에서 11

될 것이다 : 나는 비트 접근 방식으로 가기로 결정 :

public List<string> Days 

문자열 형식으로 선택한 요일의 목록을 반환합니다.

나는 당신이 이런 식으로 작업을 수행 할 수 있습니다에 "일요일", "월요일", "수요일"11

+3

트릭을 수행해야합니다. http://stackoverflow.com/questions/10112076/list-all-bit-names-from-a-flag-enum – mbrdev

답변

2
int valueFromDb = 11; 
var result = Enum.GetNames(typeof(WeekDays)) 
       .Where(x => (valueFromDb & (int)Enum.Parse(typeof(WeekDays), x)) > 0) 
       .ToList(); 

을 이동하는 방법을 알아낼 수 없습니다. Full example