是否有可能在元组中获得第n个项目?

时间:2013-05-22 14:13:23

标签: vb.net tuples

我将一些可选参数传递给函数作为元组,因为所有这些都必须一起传递或根本不传递。我希望能够以数字方式迭代元组的元素,并对每个项目执行操作。例如:

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.Item1t.Item2等三次写出语句,但这很难看。

有没有办法访问元组中的nth项?

注意:如果可能的话,我想用元组来实现这一点,即使我知道我可以创建替代方法签名。

1 个答案:

答案 0 :(得分:2)

(当然,我会把它变成一个答案!)

为方便起见,您可以将项目放入数组中;保持类型在那时并不是一个真正的问题,因为如果你对所有这些都做同样的事情,他们需要有一些共同的基类或接口。

Dim a() As Object = {t.Item1, t.Item2, t.Item3}

然后重复一遍。