.NET中如何灵活运用Span进行内存优化?
- 内容介绍
- 文章标签
- 相关推荐
本文共计608个文字,预计阅读时间需要3分钟。
将一个数组的全部元素值加1,有以下几种方法:
方法一:使用foreach循环javavar arr=new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};foreach (var i in arr){ i++;}
方法二:使用for循环javavar arr=new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};for (var i=0; i
把一个数组的全部元素加1,有什么好办法,于是有了下面的分析:
var arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//方法一
foreach (var i in arr)
{
i++;
}
//方法二
for (var i = 0; i < arr.Length; i++)
{
arr[i] += 1;
}
//方法三
foreach (ref var i in arr.AsSpan())
{
i++;
}
方法一在编译时会报错的,提示如下:无法为"i"赋值,因为它是"foreach"迭代变量,foreach循环时,是通过yield return返回的只读数据,所以不能给它赋值。
方法二没有问题,遍历元素,轮询加1。
本文共计608个文字,预计阅读时间需要3分钟。
将一个数组的全部元素值加1,有以下几种方法:
方法一:使用foreach循环javavar arr=new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};foreach (var i in arr){ i++;}
方法二:使用for循环javavar arr=new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};for (var i=0; i
把一个数组的全部元素加1,有什么好办法,于是有了下面的分析:
var arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//方法一
foreach (var i in arr)
{
i++;
}
//方法二
for (var i = 0; i < arr.Length; i++)
{
arr[i] += 1;
}
//方法三
foreach (ref var i in arr.AsSpan())
{
i++;
}
方法一在编译时会报错的,提示如下:无法为"i"赋值,因为它是"foreach"迭代变量,foreach循环时,是通过yield return返回的只读数据,所以不能给它赋值。
方法二没有问题,遍历元素,轮询加1。

