gpt4 book ai didi

c# - 查找 IEnumerable 的第一个索引

转载 作者:行者123 更新时间:2023-12-04 21:14:02 27 4
gpt4 key购买 nike

我有一个接受 IEnumerable 作为参数的方法。
我的问题是这个方法有时会给出一个从 1(而不是 0)开始的数组。

我可以创建一个列表并将参数的元素添加到其中,但没有办法只获取第一个索引吗?

编辑 1:
我所说的“从 1 开始的数组”的意思是一个从 1 开始的数组,例如:
enter image description here

我无法使用以下行访问数组“单元格”:

cells[0, 0]

正在从 Excel 范围读取此特定数组。

编辑 2:
这不是提供给 The 方法的唯一数组。
该方法还接收从 0 开始的数组,它需要适用于所有情况。

最佳答案

通常数组的下限为 0。但是,您可以创建具有不同下限的数组。为此,您需要使用 Array.CreateInstance :

var array = Array.CreateInstance(typeof(string), new[] { 10 }, new[] { 1 });

这将创建一个包含十个元素且下限为 1 的一维数组。以下是设置第一个元素值的方法:
array.SetValue("first", 1);

在您的情况下,您可以使用这样的代码创建一个具有 10 x 20 元素和下限为 1 的二维数组:
var array = (object[,]) Array.CreateInstance(typeof(object), new[] { 10, 20 }, new[] { 1, 1 });

要获得第一个维度的下限,您可以使用 GetLowerBound :
var lowerBound = array.GetLowerBound(0);

指定 1 作为参数以获得第二维的下限等。还有一个 GetUpperBound方法。如果您甚至不知道数组的尺寸,您可以检查 Rank属性(property)。

我相信这个特性主要用于支持将旧的 Visual Basic 代码移植到 Visual Basic .NET 并与 COM 自动化(例如 Excel)互操作,其中数组的下限通常为 1。

关于c# - 查找 IEnumerable 的第一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59444248/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com