配列 [1, 2, 3] を彼の順列の 1 つのインスタンスと考えてください。
私のコードでは、この値を変数に関連付けて、名前で参照できるようにする必要があります
Python版として読みやすくシンプルなコードを取得しようとしています
Python の場合:
permutation = [2, 1, 3]
できるよ:
for (red, green, blue) in permutation
for (a, b, c) in permutation
if b is red
...
私がする必要があるのは、特定の順列の値をまったく同じ順序で変数に関連付けることです: [2, 1, 3] 順列と (赤、緑、青) 変数がある場合、赤 = 2 緑 =1 を発生させたい青 = 3
C# では、Dictionary または OrderedDictionary、意味のある名前の ExtensionMethod によってそのようなことが実現できると思います。おそらく、colors["red"] == letters["a"] のようなもので問題ありません。
さまざまな実装をスケッチしようとしましたが、何かが足りないと思います。これは私がスケッチしたものです。
enum ColorsEnum
{
red, green, blue
}
public static Dictionary<string, int> Valorize(IEnumerable<string> keys, IEnumerable<int> values)
{
...
}
public static Dictionary<string, int> AsColorDictionaryWithValues(this string[] keys, int[] values)
{
...
}
public static void Valorize(Dictionary<string, int> dic, IEnumerable<int> values)
{
foreach (var item in Enum.GetNames(typeof(ColorsEnum)))
{
dic.Add(item, [incremental_number]);
}
}
良い解決策は何だと思いますか (読みやすさとシンプルさが重要です)