将数组 [1, 2, 3] 视为他的排列的一个实例。
在我的代码中,我需要将此值与我的变量相关联,以便我可以按名称引用它们
我正在尝试获取可读且简单的代码作为 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] 排列和 (red, green, blue) 变量我想发生 red = 2 green =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]);
}
}
你认为什么是好的解决方案(我关心可读性和简单性)