我将一些可选参数传递给函数作为元组,因为所有这些都必须一起传递或根本不传递。我希望能够以数字方式迭代元组的元素,并对每个项目执行操作。例如:
Public Function myFunction(Optional t As Tuple(Of Integer, String, SomeType) = Nothing) As Integer
For i = 0 to 2
someCollection(i).someMethod(t(i)) 'Pseudocode for accessing ith item in tuple
Next
End Function
解决问题的一种方法是使用列表,但是我失去了强制执行成员数量(将始终固定)和每个成员的类型的能力。另一种方法是使用t.Item1
,t.Item2
等三次写出语句,但这很难看。
有没有办法访问元组中的nth
项?
注意:如果可能的话,我想用元组来实现这一点,即使我知道我可以创建替代方法签名。
答案 0 :(得分:2)
(当然,我会把它变成一个答案!)
为方便起见,您可以将项目放入数组中;保持类型在那时并不是一个真正的问题,因为如果你对所有这些都做同样的事情,他们需要有一些共同的基类或接口。
Dim a() As Object = {t.Item1, t.Item2, t.Item3}
然后重复一遍。