我是C#的新手,我想知道是否有一个函数来删除浮点数组末尾的特定值(0)?
例如:
float[] samples = {0.0, 4.0, 2.5, ..., 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
Run Code Online (Sandbox Code Playgroud)
通话结束后,我想要我的样品:
samples == {0.0, 4.0, 2.5, ..., 2.0}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助
我首先找到最终的非零指数:
int i = samples.Length - 1;
for( ; i >= 0; i--)
if(samples[i] != 0.0F) break;
Run Code Online (Sandbox Code Playgroud)
那么我可以复制该子集(0- i含),或避免分配我会使用一个Span<T>限制自己的那部分,而无需创建一个新的数组:
var span = new Span<float>(samples, 0, i + 1);
Run Code Online (Sandbox Code Playgroud)