迭代数组 - 仅具有值的数组单元格

在 c# 中迭代(比如 10 个单元格)数组的方法是什么,其中只有前 4 个填充了值并避免遍历剩余的 6 个?

我可以为索引保留一个 int 并在每个数组添加/删除操作上修改它,但想知道 c# 是否有内置(且高效)的函数来实现这一点。

提前致谢。


MMTTMM
浏览 147回答 3
3回答

月关宝盒

就目前所知,您有 2 个高性能选项for 循环,缺点是每次迭代都必须检查条件for(var i = 0; ary[i] != null & i < length; i++){}但是,如果这真的是关键任务,您将不得不保留一个列表(或范围的索引),更新速度较慢,迭代速度较快如果你想挤出更多的性能,使用fixed和unsafe

慕无忌1623718

您可以使用列表,然后将其转换为数组List<int> list = new List<int>();list.Add(1);list.Add(2);list.Add(5);int[] arr = list.ToArray();int sum = 0;foreach (int value in arr){&nbsp; &nbsp;sum += value;}

慕哥9229398

是的,您可以使用内置的TakeWhile方法:&nbsp; var result = Array.TakeWhile(item => item != string.IsNullOrEmpty(item));&nbsp;&nbsp; foreach (int value in result)&nbsp; {&nbsp; &nbsp; &nbsp;Console.WriteLine(value);&nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP