仅在float [] samples数组的末尾删除或修剪零

FSe*_*ebH 1 c# arrays trim

我是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)

谢谢您的帮助

Mar*_*ell 6

我首先找到最终的非零指数:

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)