gpt4 book ai didi

C#数组题(拆分)

转载 作者:行者123 更新时间:2023-11-30 18:54:12 29 4
gpt4 key购买 nike

问题很简单——比如说,我得到了函数,它接收数组作为参数

void calc(double[] data)

如何将这些数据“拆分”成两个子数组并像这样传递给子函数

calc_sub(data(0, length/2));
cals_sub(data(length /2, length /2));

我希望,你明白了——我会用 C++ 写这个

void calc(double * data, int len)
{
calc_sub(data, len / 2); //this one modifies data!!
calc_sub(data + len / 2, len / 2); //this one modifies data too!!
}

如何在没有不必要的内存复制的情况下在 C# 中做同样的事情?我在这里需要 2 个内存副本。1)从数据到拆分数据2) 计算子3)从拆分数据回到数据!这是对时间和内存的巨大浪费!

最佳答案

最简单的可能是使用 LINQ TakeSkip扩展方法:

int half = data.Length / 2;
double[] sub1 = data.Take(half).ToArray();
double[] sub2 = data.Skip(half).ToArray();

关于C#数组题(拆分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3328796/

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