如何在C#中传递一个通用数组?
问题描述:
我需要将数组传递给C#中的一个函数,其中数组可能是一个字符串[],int []或double [],并且可能是1到多个维度。如何在C#中传递一个通用数组?
推理:
我需要到一个数组传递给函数来计算它的长度,类似于:
public int getLength(array[] someArray, int dimension)
{
if(dimension > 0) //get length of dimension
return someArray.getLength(dimension);
else //get length of entire array
return someArray.Length;
}
问:
我怎样才能通过一个泛型数组?
或者
是否有更好的方法来做到这一点 - 说数组转换到一个列表?
答
为了您引用的目的,只需通过Array someArray
- 这应该很好,并涵盖任意数量的维度。对于矢量(基于1维,基于0的数组),可以使用泛型(GetLength<T>(T[] someArray)
) - 但当向量.Length
更方便时,这似乎毫无意义。
但是,对于未知数量的维度(或对于非矢量单维数组),您仅限于Array
。
答
如果你想List
般的性能,也可以使用ArrayList
,其持有的object
小号
任意数字。这就是我需要。我不知道Array真的存在。谢谢。 – 2010-12-06 20:54:22