Ich möchte ein Wörterbuch erstellen und füllen Sie es auf eine bestimmte Weise.Wie kann ich Funktion als Wert im Wörterbuch verwenden? (C#)
public struct Position
{
public int X { get; set; }
public int Y { get; set; }
public char Orientation { get; set; }
}
public Dictionary<Position, Position> ChangePosition;
die Orientierung kann 'N', 'S', 'E' sein, 'W' bedeutet, Norden, Süden, ...
, wenn der erste Schlüssel ist X, Y, 'N ' ---> der Wert sein sollte X, Y + 1, 'N'
So das Wörterbuch nächste Position des Elements Prädikat kann basierend auf aktueller Position und Richtung zu bewegen.
Wie kann ich dieses Wörterbuch füllen? Oder gibt es einen anderen besseren Weg, es zu implementieren?
Jede Hilfe wäre willkommen.
aktualisieren
ich diese Lösung gefunden, aber ich denke, vielleicht so etwas wie Action<>
kann es besser machen:
ChangePosition= new Dictionary<char, Func<Position, Position>>
{
{'N', pos => new Position {X = pos.X, Y = pos.Y + 1, Orientation = pos.Orientation}},
{'E', pos => new Position {X = pos.X+1, Y = pos.Y , Orientation = pos.Orientation}},
{'W', pos => new Position {X = pos.X-1, Y = pos.Y, Orientation = pos.Orientation}},
{'S', pos => new Position {X = pos.X, Y = pos.Y - 1, Orientation = pos.Orientation}},
};
Der Algorithmus ist hier sowohl trivial als auch billig. Warum sollten Sie eine Nachschlagelösung wählen? –
@J ... was ist dein Vorschlag bitte? –
Das Ausfüllen von 4 Werten in einem Wörterbuch sollte nicht * zu * hart sein ... Was genau versuchen Sie in diesen 4 Zeilen zu vereinfachen? –