gpt4 book ai didi

c# - 创建子数组而不进行复制和/或分配

转载 作者:行者123 更新时间:2023-12-02 04:30:51 24 4
gpt4 key购买 nike

我是 C# 新手,想知道如何执行以下操作:

我创建一个数组,其大小为我需要存储的最大元素数:

int[] myArray = new int[64000];

我正在将此数组传递给第三方 API。在此 API 中,它们使用 .Length 属性来确定元素的数量。我不希望发生这种情况,因为数组长度是最大计数,而不是“事件计数”(即使用中的元素数量)。

考虑到这一点,有没有办法创建另一个数组,其大小等于事件计数?并且,这可以在没有副本和/或分配的情况下完成吗?我已经分配了内存——我想做的就是在与第 3 方 API 良好配合的同时指示感兴趣的子区域。

最佳答案

如果第三方 API 接受 int[] ,传递数据的唯一方法是复制。

可以轻松地设计不需要的 API(即:传递元素数量,或使用 ArraySegment<T> 等),但如果 API 不支持,则需要一个副本。

请注意,您可以使用 Array.Copy但是,批量复制项目,而不是循环复制。

关于c# - 创建子数组而不进行复制和/或分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23204074/

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