/ / Alternative zum Wörterbuch mit Aufzählungsschlüsseln? - c #, .net

Alternative zum Wörterbuch mit Enum-Schlüsseln? - c #, .net

Bei meiner Lösung verlasse ich mich stark auf Wörterbücher mit einer Aufzählung als Schlüssel. Ich finde es leicht, diese Konstruktion zu verstehen und zu lesen.

Ein wesentliches Hindernis für das Vorstehende ist, dass dies nicht serialisiert werden kann. Sehen Probleme mit Json Serialize Dictionary <Enum, Int32> für mehr Infos dazu.

Meine Frage ist:
Gibt es ein gleichermaßen lesbares und intuitives Muster zum Ersetzen des Dictionary<enunm,object> das ist json mit dem eingebauten json serializer serialisierbar?

Heute habe ich ersetzt a.Instance.QueryableFields[Fields.Title] mit a.Instance.QueryableFields[ Fields.Title.ToString()] . Nicht sehr elegant und öffnet sich für Fehler.

Antworten:

1 für die Antwort № 1

Bei der Serialisierung wählen Sie einfach den String-Wert aus. Es ist nicht sehr ordentlich, aber es funktioniert.

a.Instance.QueryableFields.ToDictionary(x => x.Key.ToString(), x => x.Value)

-1 für die Antwort № 2

Sie können ein Wörterbuch hier leicht durch ein Array ersetzen, da in C # Enums intern als Ganzzahlen gespeichert werden:

public enum MyEnum { Zero=0, One, Two };

object[] dictionary = new object[3];
dictionary[(int)MyEnum.Zero] = 4;

EDIT: (siehe Kommentare)

Sie können auch ersetzen Dictionary<Enum, Object> mit Dictionary<Int, Object>.