c# - 如何在 C# 中传递通用数组?

标签 c# arrays generics

我需要将一个数组传递给 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;
}

问题:

如何传递通用数组?

或者

是否有更好的方法来做到这一点 - 例如将数组转换为列表?

最佳答案

为了您引用的目的,只需传递 Array someArray - 这应该没问题,并且涵盖任意数量的维度。对于向量(一维、基于 0 的数组),您可以使用泛型 ( GetLength<T>(T[] someArray) ) - 但对于向量 .Length 来说这似乎毫无意义。比较方便。

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

关于c# - 如何在 C# 中传递通用数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4370800/

相关文章:

c# - 通用类多态性

c - 关于 C 和泛型函数

c# - 使用 JSON.NET 解析 JSON 对象流的正确方法是什么?

arrays - 使用结构类型时出现意外错误

c# - 适用于 IEnumerable<T> 和 IQueryable<T> 的扩展方法?

C动态结构错误

arrays - 获取从 "string_to_array()"函数返回的数组的第 N 个元素

c# - Entity Framework - 延迟加载或额外的异步/等待查询方法?

c# - 是否需要检查 IQueryable<T>.Any() ?

c# - 使用 ASP.NET MVC 形式的数据生成 xml 文件