質問: "ORG1"; } (2)Dictionaryに変換マスタを持たせて変換する。 (3)列挙型を定義して変換する。 なお、メモリ容量を気にするほど大量に定義があるわけではありません。(数百のオーダー) また、パフォーマンスもそこまでシビアに求めておりません。
回答: 自分でしたら下記のようなレポジトリパターンで管理するでしょうか。 ``` public class ResourceRepository { private readonly IReadOnlyDictionary _map = new Dictionary { ["ORIGINAL"] = "ORG", ["ORIGINAL1"] = "ORG1", // ... }; public string Find(string key) { string result; return _map.TryGetValue(key, out result) ? result : null; } public bool Contains(string key) { return _map.ContainsKey(key); } } ``` 使い方はこんな感じ。 ``` class Program { private static ResourceRepository _resourceRepository = new ResourceRepository(); private static void Main(string[] args) { var key = Console.ReadLine(); var result = _resourceRepository.Find(key); Console.WriteLine(result); } } ``` 上記はマッピングルールが静的に決まっているシンプルな例ですが、`Add` や `Save` メソッドを用意してプログラマブルにルールを増やしたり、コンストラクタでデータソース(JSON や XML、データベース接続等)を渡してマッピングルールを構築したり、といった拡張が考えられると思います。