元组似乎不适合这个任务的类型,至少在我理解的范围内。
以下是其他一些想法。
A. 字典
您可以使用字典来完成此任务。
private int[] delayParametersIndexSetup = new int[] {1, 0, 0, 1, 1, 0, 0, 1 };
private Dictionary<int, int> delayParameters = new Dictionary<int, int>()
{
{ 0, 1 },
{ 1, 500 }
};
(...)
foreach (var index in delayParametersIndexSetup)
{
var value = this.delayParameters[index];
}
您可以使用以下方法同时存储数值和名称:
private Dictionary<int, (string Name, int Delay)> delayParameters = new Dictionary<int, (string Name, int Delay)>()
{
{ 0, ("Wheel", 1) },
{ 1, ("Diag", 500) }
};
B. 数组 - 连续的
如果值是连续的,列表或数组也可以使用。
private int[] delayParametersIndexSetup = new int[] {1, 0, 0, 1, 1, 0, 0, 1 };
private int[] delayParameters = new int[]{1,500};
(...)
foreach (var index in delayParametersIndexSetup)
{
var value = delayParameters[index];
}
C. 数组/列表 + Linq
您还可以将索引、名称和值存储在数组或列表中。
var delayParametersIndexSetup = new int[] { 1, 0, 0, 1, 1, 0, 0, 1 };
var delayParameters = new List<(int Index, string Name, int Delay)>() {
(0, "Wheel", 1),
(1, "Diag", 500)
};
foreach (var index in delayParametersIndexSetup)
{
var p = delayParameters.First(p => p.Index == index);
Console.WriteLine($"{p.Name}:{p.Delay}");
}
Diag:500
Wheel:1
Wheel:1
Diag:500
Diag:500
Wheel:1
Wheel:1
Diag:500
Item1
并不比Item2
更重要。OP想根据外部数据动态返回元组中的Item1
或Item2
。 - GSerg