为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
MMTTMM 2021-10-09 09:59:26
在 c# 中迭代(比如 10 个单元格)数组的方法是什么,其中只有前 4 个填充了值并避免遍历剩余的 6 个?我可以为索引保留一个 int 并在每个数组添加/删除操作上修改它,但想知道 c# 是否有内置(且高效)的函数来实现这一点。提前致谢。
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

就目前所知,您有 2 个高性能选项


for 循环,缺点是每次迭代都必须检查条件


for(var i = 0; ary[i] != null & i < length; i++)

{


}

但是,如果这真的是关键任务,您将不得不保留一个列表(或范围的索引),更新速度较慢,迭代速度较快


如果你想挤出更多的性能,使用fixed和unsafe


查看完整回答
反对 回复 2021-10-09
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

您可以使用列表,然后将其转换为数组


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)

{

   sum += value;

}


查看完整回答
反对 回复 2021-10-09
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

是的,您可以使用内置的TakeWhile方法:


  var result = Array.TakeWhile(item => item != string.IsNullOrEmpty(item)); 


  foreach (int value in result)

  {

     Console.WriteLine(value);

  }


查看完整回答
反对 回复 2021-10-09
  • 3 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信