辞書を作成して特定の方法で入力したいと考えています。辞書でFunction as valueを使用するにはどうすればよいですか? (C#)
public struct Position
{
public int X { get; set; }
public int Y { get; set; }
public char Orientation { get; set; }
}
public Dictionary<Position, Position> ChangePosition;
オリエンテーションが 'E'、 'W' の北、南を意味し、 'S'、 'N' することができ...
最初のキーがX、Y、 'Nです' --->値はX、Y + 1、' N '
である必要があります。したがって、辞書は、現在の位置と移動方向に基づいてアイテムの次の位置を述語できます。
この辞書にはどのような記入方法がありますか? それを実装する他の方法がありますか?
ご協力いただければ幸いです。
更新
私は、しかし、私は多分Action<>
のようなものは、それを改善することができますね、この解決策を見つけた:
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}},
};
ここのアルゴリズムは簡単で安価です。なぜルックアップソリューションを選択するのですか? –
@J ...あなたの提案はどうしますか? –
辞書に4つの値を記入するのは難しいことではありません...その4行で簡単に何をしようとしていますか? –