【问题标题】:How to pass a generic array in C#?如何在 C# 中传递泛型数组?
【发布时间】:2010-12-06 20:48:59
【问题描述】:

我需要将数组传递给 C# 中的函数,其中数组可能是 string[]、int[] 或 double[],并且可能是 1 到多个维度。

推理:

我需要将一个数组传递给一个函数来计算它的长度,类似于:

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;
}

问题:

如何传递泛型数组?

或者

有没有更好的方法来做到这一点——比如将数组转换为列表?

【问题讨论】:

    标签: c# arrays generics


    【解决方案1】:

    出于您引用的目的,只需传递Array someArray - 应该没问题,并且涵盖任意数量的维度。对于 vector(一维、从 0 开始的数组),您可以使用泛型 (GetLength<T>(T[] someArray)) - 但是当矢量 .Length 更方便时,这似乎毫无意义。

    但是对于未知数量的维度(或对于非向量一维数组),您被限制为Array

    【讨论】:

    • 这正是我所需要的。我不知道 Array 确实存在。谢谢。
    • @Todd - 它是向量的基类,即int[] : Array
    【解决方案2】:

    如果你想要类似List的属性,你也可以使用ArrayList,它包含任意数量的objects

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 2011-08-26
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      相关资源
      最近更新 更多