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. AttributeError: module 'tensorflow' has no attribute 'set_random_seed'

    anaconda3 python3.7 安装好tensorflow 后出现上面的问题,原因是安装的tensorflow版本是2.0的,所以使用以前的代码tensorflow中的函数不兼容.

  2. 45、sparkSQL UDF&UDAF

    一.UDF 1.UDF UDF:User Defined Function.用户自定义函数. 2.scala案例 package cn.spark.study.sql import org.apach ...

  3. 如何使用git把本地代码上传到github

    Git Bash Here git init git add . git commit -m '说明' git remote add origin https://github.com//.git g ...

  4. 各种DTO类最好有 无参数的构造方法

    以一下这个类为例 @Getter @Setter @ToString class Person { private String s; public Person(String s) { this.s ...

  5. Note_4.9

    2019/4/9 奇奇怪怪的笔记 关于代码,基本上是现写的,可能连编译都过不了 因为是简单算法场,所以就很不走心了昂,/小纠结 图论相关  最小生成树 prim,kruskal 最小生成树的切割性质 ...

  6. Promethues实战-简易教程系列

    1.监控概述 2.Promethues基础 3.Promethues初体验

  7. ubuntu之路——day11.2 快速搭建系统并进行迭代、在不同的划分上进行训练和测试

    快速搭建系统并进行迭代 1.建立dev/test set,并确定你的目标 2.快速建立初始化的系统 3.使用前面提到的bias/variance分析和错误分析来进行模型优化和迭代 针对以上的过程,An ...

  8. Understanding Action Filters (C#) 可以用来做权限检查

    比如需要操作某一张表league的数据,multi-tenancy的模式,每一行数据都有一个租户id的字段. 那么在api调用操作的时候,我们需要检查league的id,是否和当前用户所属的租户信息一 ...

  9. 树莓派 pip 手动安装 和使用阿里云源

    在 /etc/pip.conf 添加如下内容,启用源 [global] extra-index-url=https://www.piwheels.org/simple 下载后 pip install ...

  10. VOT-2016 代码评测工具的使用说明

    VOT-2016 代码评测工具的使用说明 2018-10-14 09:37:04 VOT-2016 官网:http://www.votchallenge.net/vot2016/ 评测代码链接:htt ...