C#修剪数组内的空格(删除0)

Nov*_*vak 4 c# arrays trim

如果我有下一个数组:

int[] arr = { 123, 243, 0, 0, 123, 0, 0, 0, 123 };
Run Code Online (Sandbox Code Playgroud)

如何移动所有不等于0的值,因此可以像这样构建数组:

int[] arr = { 123, 243, 123, 123, 0, 0, 0, 0, 0 };
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ani*_*Ani 12

如何使用LINQ:

var result = arr.Where(x => x != 0).Concat(arr.Where(x => x == 0)).ToArray();
Run Code Online (Sandbox Code Playgroud)

这非常易读且具有线性时间复杂度.另一方面,它运行不合适,需要两次输入.

  • 很好,非常优雅!+1 (2认同)