在 c# 中迭代(比如 10 个单元格)数组的方法是什么,其中只有前 4 个填充了值并避免遍历剩余的 6 个?我可以为索引保留一个 int 并在每个数组添加/删除操作上修改它,但想知道 c# 是否有内置(且高效)的函数来实现这一点。提前致谢。
3 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
就目前所知,您有 2 个高性能选项
for 循环,缺点是每次迭代都必须检查条件
for(var i = 0; ary[i] != null & i < length; i++)
{
}
但是,如果这真的是关键任务,您将不得不保留一个列表(或范围的索引),更新速度较慢,迭代速度较快
如果你想挤出更多的性能,使用fixed和unsafe
慕无忌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;
}
慕哥9229398
TA贡献1877条经验 获得超6个赞
是的,您可以使用内置的TakeWhile方法:
var result = Array.TakeWhile(item => item != string.IsNullOrEmpty(item));
foreach (int value in result)
{
Console.WriteLine(value);
}
- 3 回答
- 0 关注
- 146 浏览
添加回答
举报
0/150
提交
取消