In meinem Code, ich habe seit einigen Tagen der Woche eine Flags Enum bekam, wie folgt:XElement mit Flags Enum
[Flags]
public enum DaysOfWeek // enumeration for days of week
{
Sunday = 0x0000001,
Saturday = 0x0000010,
Friday = 0x0000100,
Thursday = 0x0001000,
Wednesday = 0x0010000,
Tuesday = 0x0100000,
Monday = 0x1000000,
MondayToFriday = Monday | Tuesday | Wednesday | Thursday | Friday,
MondayToSaturday = MondayToFriday | Saturday,
NotSaturday = MondayToFriday | Sunday,
Weekend = Saturday | Sunday,
MondayToSunday = MondayToFriday | Weekend,
HolidaysOnly = ~MondayToSunday,
}
Und ich dies wie im folgenden vereinfachten Beispiel zur Ausgabe von XML:
List<DaysOfWeek> profiles = new List<DaysOfWeek>();
profiles.Add(DaysOfWeek.MondayToFriday);
profiles.Add(DaysOfWeek.MondayToSaturday);
profiles.Add(DaysOfWeek.Monday | DaysOfWeek.Tuesday);
XElement xml = new XElement("Profiles",
from DaysOfWeek pf in profiles
select new XElement("Profile",pf.ToString())
);
Console.WriteLine(xml);
das gibt mir die Ausgabe:
<Profiles>
<Profile>MondayToFriday</Profile>
<Profile>MondayToSaturday</Profile>
<Profile>Tuesday, Monday</Profile>
</Profiles>
Aber was ich will, ist:
Ich schätze, dass das Format meines XElement erweitert werden muss, damit ich leere Elemente für die Wochentage bekomme, aber wenn ich dies tue, dann löst das Element "Tuesday, Monday" eine Ausnahme aus, weil ich kann Verwenden Sie kein Komma (oder Leerzeichen) als Teil eines Elementnamens.
Aber
a) Wenn nicht einer der vordefinierten Gruppen von Tagen mit, ich brauche die Elemente in einer bestimmten Reihenfolge (Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag) zu schreiben, die gegeben ist durch das Schema (siehe c unten). Ich habe es mir schwerer gemacht, weil ich sie umgekehrt definiert habe, mit Montag als High-Bit, aber das lag daran, dass das ältere Datenformat, mit dem ich zuerst zu tun hatte, die Tage als Flags (1/0) in einem String anzeigt diese Reihenfolge z Montag und Dienstag sind "1100000" (Montag links, Sonntag rechts);
b) Ich möchte in der Lage sein, die entsprechenden Elemente auszugeben, ohne alles einzeln testen zu müssen (obwohl ich denke, dass ich es tun muss, wenn ich muss); und
c) Das XML-Ausgabeformat, nach dem ich suche, wird von einem Standard mit einem XSD diktiert, und ich kann es nicht ändern.
Irgendwelche guten Ideen?
Danke für die Bearbeitung @ MUG4N. Nicht ganz sicher, wo dieser Anfang [ging, weil es in dem Code war, den ich ursprünglich kopierte! – StuartR143