Определите перечисление флага для хранения ваших значений:
[Flags]
public enum Days
{
None = 0,
Sun = 1, // 0
Mon = 2, // 1
Tue = 4, // 2
Wed = 8, // 3
Thu = 16, // 4
Fri = 32, // 5
Sat = 64 // 6
}
Вы можете установить выбранные дни следующим образом:
var days = Days.None;
if (some condition)
days |= Days.Mon;
if (some other condition)
days |= Days.Wed;
if (yet another condition)
days |= Days.Sat;
И генерировать значения, основанные на том, какие флаги установлены следующим образом:
static public string ConstructDays(Days days)
{
return string.Join(",", Enum.GetValues(typeof(Days))
.Cast<Days>()
.Where(d => days.HasFlag(d) && d != Days.None)
.Select(d => Math.Log((int)d, 2))); // 1,3,6
}