Span复习

using System;

namespace Span复习
{
class Program
{
static void Main(string[] args)
{
//Console.WriteLine("Hello World!");
//IntroSpans();
//var span1 = IntroSpans(); //CreatSlices(span1); int[] int1 = {,,,,,,,,,,};
int[] int2 = {,,,,,,};
var span1 = new Span<int>(int1);
var span2 = new Span<int>(int2);
ChangeValues(span1,span2);
} //使用Span<T>,可以直接访问数组元素。数组的元素没有复制,但是它们可以直接使用,这比复制要快。
private static Span<int> IntroSpans()
{
int[] arr1 = new int[] {,,,,,};
var span1 = new Span<int>(arr1);
span1[] = ;
System.Console.WriteLine($"arr1[1] is changed via span[1]: {arr1[1]}");
System.Console.WriteLine($"span1[1]: {span1[1]}");
return span1; } //创建切片
private static void CreatSlices(Span<int> span1)
{
System.Console.WriteLine(nameof(CreatSlices));
int[] arr2 = {,,,,,,};
//var span2 = new Span<int>(arr2);
var span3 = new Span<int>(arr2,start:,length:);
var span4 = span1.Slice(start:,length:); DisplaySpan("Content of span3:",span3);
DisplaySpan("Content of span4:" ,span4);
System.Console.WriteLine(); } //DisplaySpan()用于显示Span的内容
private static void DisplaySpan(string title,ReadOnlySpan<int> span)
{
System.Console.WriteLine(title);
for(int i = ;i<span.Length;i++)
{
System.Console.Write($"{span[i]} "); }
System.Console.WriteLine(); } //使用Span改变值
private static void ChangeValues(Span<int> span1,Span<int> span2)
{
System.Console.WriteLine(nameof(ChangeValues));
var span4 = span1.Slice(start:);
span4.Clear();//清除了span1从第5位开始后面的数,并用数0填充
DisplaySpan("content of span1",span1);
var span5 = span2.Slice(start:,length:);
span5.Fill();//span2从第4位开始的三位,用数42来填充
DisplaySpan("content of span2",span2);
span5.CopyTo(span1);
DisplaySpan("content of span1",span1);
if(!span1.TryCopyTo(span4))
{
System.Console.WriteLine("Couldn't copy span1 to span4 because span4 is to small ");
System.Console.WriteLine($"length of span1: {span1.Length},length of span4: {span4.Length} "); }
System.Console.WriteLine(); }
}
}

使用Span改变值事例输出如下

ChangeValues
content of span1 content of span2 content of span1 Couldn't copy span1 to span4 because span4 is to small
length of span1: ,length of span4:

Span复习的更多相关文章

  1. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  2. jQuery 复习

    jQuery 复习 基础知识 1, window.onload $(function(){});   $(document).ready(function(){}); 只执行函数体重的最后一个方法,事 ...

  3. css重点章节复习—布局-边框-边距-浮动 (部分)

    css重点章节复习—布局-边框-边距-浮动 在第二个任务中,这一块的后面那条线真的弄了很久.起初也是在html里面写的代码.之后觉得这样不好,想到第一个页面中用到的border-bottom和bord ...

  4. Jquery 复习练习(01)

    Jquery 复习练习 window.onload = function() {} == $(function() {}); 千万注意:js对象和jq对象的区别,这也是常常犯的错误 js对象举例: w ...

  5. html 复习

    通过几次修改网页的经历,发现相关基础知识之薄弱,不得不再次花时间复习一遍.希望这是最后一次. 一 通用声明 HTML5 <!DOCTYPE html> HTML 4.01 <!DOC ...

  6. 23----2013.07.01---Div和Span区别,Css常用属性,选择器,使用css的方式,脱离文档流,div+css布局,盒子模型,框架,js基本介绍

    01 复习内容 复习之前的知识点 02演示VS创建元素 03div和span区别 通过display属性进行DIV与Span之间的转换.div->span 设置display:inline   ...

  7. span 右浮动折行 解决ie6/7中span右浮动折行问题

    A floated box is shifted to the left or right until its outer edge touches the containing block edge ...

  8. ②jquery复习

    # jQuery 复习--by 传智前端与移动开发学院 ## 1. jQuery是什么?(了解)+ www.github.com+ jQuery 其实就是一堆的js函数,是普通的js,只不过应用广泛, ...

  9. 复习上学期的HTML+CSS(1)

    自己跟着网上教程复习上学期的HTML+CSS,因为已经忘得差不多了,而且现在学的js也要以HTML+CSS为基础,坚持每天持续更新. n  B/S 网络结构   Browser/Server 浏览器/ ...

随机推荐

  1. ACwing : 798. 差分矩阵

    不得不说之前的差分我真的是掌握的不好.. 一维差分确实简单一看就会,但是学会了之后却并不能灵活的运用. 而二维的差分我甚至还琢磨了很长时间 懒得画图所以没有图..对于二维差分的定义,百度百科是这么说的 ...

  2. ubuntu之路——day9.3 softmax regression激活函数

    Softmax 用于在深度学习中处理多分类(C > 2)问题,分类器最后的输出单元需要Softmax 函数进行数值处理.关于Softmax 函数的定义如下所示: 其中vi表示 vi = z[L] ...

  3. 2019SDN课程阅读作业(2)

    1.过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么? 分为三个阶段,第一个阶段是主动网络(从20世纪90年代中期到21世纪初),它在网络中引入了可编程功能,以实现更大的创新:第二个 ...

  4. Thingsboard开发环境搭建及编译项目

    第一部分:JDK 1,下载JDK, JDK地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133 ...

  5. PHP是单线程还是多线程?

    PHP 从设计之初到流行起来都没有出现明显需要用多线程才能解决的需求.某些需要用到多线程的地方也有相应的解决方案和替代方案.多线程并不总是比单线程优,多线程可能会引入其他问题(例如:两个线程同时调用一 ...

  6. nodejs五子棋online游戏开发视频教程,客户端cocos creator js

    开发的游戏是五子棋online,网络版的,服务端部分和客户端部分都在这个教程里面,可以看一下目录! 服务器nodejs游戏开发教程 使用Nodejs开发网络服务器 游戏服务端 ,cocos creat ...

  7. js实现replaceAll方法

    js本来有replace方法,请看w3school的说明: replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法: stringObject.rep ...

  8. Spring源码解析--IOC根容器Beanfactory详解

    BeanFactory和FactoryBean的联系和区别 BeanFactory是整个Spring容器的根容器,里面描述了在所有的子类或子接口当中对容器的处理原则和职责,包括生命周期的一些约定. F ...

  9. win7 激活码 秘钥

    019.06最新windows7旗舰版系统激活码: 目前市面上的win7旗舰版激活码大部分都已经过期或失效了,下面来分享一些最新的. win7旗舰版激活密钥: BG2KW-D62DF-P4HY6-6J ...

  10. 基础学习笔记之opencv(3):haartraining生成.xml文件过程[转]

    1.准备正负样本: 在上一讲http://www.cnblogs.com/tornadomeet/archive/2012/03/27/2420088.html 中,我们已经收集到了训练所用的正样本. ...