C#可空类型与数组

文章目录

      • 可空类型
      • NULL合并运算符(??)
      • 数组
        • 数组声明
        • 数组初始化
        • 数组赋值
        • 数组访问
        • 多维数组
        • 交错数组
        • 数组类
          • 数组类的常用属性
          • 数组类的常用方法

可空类型

  C#提供了一种特殊的数据类型,nullable类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。声明一个nullable类型(可空类型)的语法如下:

<data_type> > ? <variable_name> = null;

namespace NullAble
{class Program{static void Main(string[] args){int? a = null;int? b = 123;Console.WriteLine("a:{0}, b:{1}", a, b);}}
}

在这里插入图片描述

NULL合并运算符(??)

  Null 合并运算符用于定义可空类型和引用类型的默认值。Null 合并运算符为类型转换定义了一个预设值,以防可空类型的值为 Null。

namespace NullAble
{class Program{static void Main(string[] args){int? a = null;int? b = 123;int c = a ?? 234;int d = b ?? 234;Console.WriteLine("c:{0}, d:{1}", c, d);}}
}

在这里插入图片描述

数组

  数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。

数组声明

datatype[] arrayname

  datatype:这个数组存储数据的类型。

  arrayname:数组名。

数组初始化

  数组是一个引用类型,所以需要用new关键字来创建数组。

datatype[] arrayname = new datatype[n];

  n表示数组的空间大小。

数组赋值

通过下标给指定位置赋值

int[] arr = new int[4];

arr[0] = 1;

声明时进行赋值

int[] arr = {0, 1, 2, 3, 4};

创建并初始化一个数组

int[] arr = new int[5] {1, 2, 3, 4, 5};

省略数组大小进行赋值

nt[] arr = new int[] {1, 2, 3, 4, 5};

数组访问
namespace Array
{class Program{static void Main(string[] args){int[] arr1 = new int[3];arr1[0] = 1;int[] arr2 = { 1, 2, 3, 4, 5 };int[] arr3 = new int[5] { 1, 3, 5, 7, 9 };int[] arr4 = new int[] { 0, 2, 4, 6, 8 };int a = arr1[0];Console.WriteLine("a:{0}\n", a);for(int i = 0; i < 5; i++){Console.Write("{0} ", arr2[i]);}Console.WriteLine("\n");foreach (int i in arr3){Console.Write("{0} ", i);}Console.WriteLine("\n");}}
}

在这里插入图片描述

多维数组

  多维度存储相同类型数据的数组。

namespace Array
{class Program{static void Main(string[] args){int[,] arr = new int[5, 2] { { 0, 1 }, { 2, 3 }, { 4, 5 }, { 6, 7 }, { 8, 9 } };for(int i = 0; i < 5; i++){for(int j = 0; j < 2; j++){Console.Write("{0} ", arr[i, j]);}Console.WriteLine(" ");}}}
}

在这里插入图片描述

交错数组

  交错数组是存放数组的数组。

namespace Array
{class Program{static void Main(string[] args){int[][] arr = new int[][] { new int[] { 0, 1 }, new int[] { 2, 3 }, new int[] { 4, 5 }, new int[] { 6, 7 }, new int[] { 8, 9 } };for(int i = 0; i < 5; i++){for(int j = 0; j < 2; j++){Console.WriteLine("{0} ", arr[i][j]);}}}}
}

在这里插入图片描述

数组类
数组类的常用属性
属性描述
IsFixedSize获取一个值,该值指定数组是否有固定大小
IsReadOnly描述获取一个值,该值指示数组是否只读
Length获取一个32位整数,返回数组长度
LongLength获取一个64位整数,返回数组长度
Rank获取数组的秩(维度)
数组类的常用方法
方法描述
Clear(Array, index, Length)根据元素的类型,设置数组从下标index开始,长度为length的元素为零、为false或者为null
Copy(Array, Array, Int32)从数组的第一个元素开始复制N个元素到另一个数组
CopyTo(Array, Int32)把源数组全部拷贝到目标数组,从目标数组的第N位开始覆盖
GetLength(dimension)/GetLongLength(dimension)获取数组指定维度的长度,返回32喂整数或64位整数
GetLowerBound返回数组指定维度的第一个元素的索引
GetUpperBound返回数组指定维度的最后一个元素的索引
Reverse(Array)逆转整个一维数组
SetValue(Object, Int32)给一维数组中指定位置的元素设置值
Sort(Array)排序
namespace MyArray
{class Program{static void Main(string[] args){int[] arr1 = new int[5] { 1, 2, 3, 4, 5 };int[] arr2 = new int[5] { 1, 2, 3, 4, 5 };Array.Clear(arr1, 1, 3);foreach(int i in arr1){Console.Write("{0} ", i) ;}Console.WriteLine(" ");Array.Copy(arr1, arr2, 3);foreach (int i in arr2){Console.Write("{0} ", i);}Console.WriteLine(" ");int[] arr3 = new int[10];arr1.CopyTo(arr3, 2);foreach (int i in arr3){Console.Write("{0} ", i);}Console.WriteLine(" ");int[,,] arr4 = new int[1, 2, 3] { { { 1, 2, 3 }, { 4, 5, 6 } } };Console.WriteLine("一维:{0},二维:{1},三维:{2}", arr4.GetLength(0), arr4.GetLength(1), arr4.GetLength(2));Console.WriteLine("一维:{0},二维:{1},三维:{2}", arr4.GetUpperBound(0), arr4.GetUpperBound(1), arr4.GetUpperBound(2));Array.Reverse(arr1);foreach (int i in arr1){Console.Write("{0} ", i);}Console.WriteLine(" ");arr1.SetValue(2, 2);foreach (int i in arr1){Console.Write("{0} ", i);}Console.WriteLine(" ");Array.Sort(arr1);foreach (int i in arr1){Console.Write("{0} ", i);}Console.WriteLine(" ");}}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/46054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

<数据集>夜间车辆识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;5000张 标注数量(xml文件个数)&#xff1a;5000 标注数量(txt文件个数)&#xff1a;5000 标注类别数&#xff1a;8 标注类别名称&#xff1a;[car, pedestrian, traffic light, traffic sign, bicycle, bus, truck…

vue学习day08-v-model详解、sync修饰符、ref和$refs获取dom组件、Vue异步更新和$nextTick

25、v-model详解 &#xff08;1&#xff09;v-model原理 1&#xff09;原理: v-model本质上是一个语法糖&#xff0c;比如&#xff1a;在应用于输入框时&#xff0c;就是value属性与input事件的合写。 2&#xff09;作用 ①数据变&#xff0c;视图变 ②视图变&#xff0c…

wordpress制作主题步骤

WordPress主题的制作是一个涉及多个步骤的过程&#xff0c;旨在控制网站的外观、布局和功能。以下是一个详细的WordPress主题制作指南&#xff1a; 一、准备工作 安装WordPress&#xff1a;首先&#xff0c;确保你已经在你的服务器上安装了WordPress。WordPress可以从其官方网…

短链接服务Octopus-搭建实战

[WARNING] The POM for cn.throwx:octopus-contract:jar:1.0-SNAPSHOT is missing, no dependency information available 解决方案&#xff1a; cd octopus-contract/ mvn install -------------- ➜ octopus-server git:(master) ✗ mkdir -p /data/log-center/octopus/s…

DockerCompose介绍,安装,使用

DockerCompose 1、Compose介绍 将单机服务-通过Dockerfile 构建为镜像 -docker run 成为一个服务 user 8080 net 7000 pay 8181 admin 5000 监控 .... docker run 单机版、一个个容器启动和停止问题&#xff1a; 前面我们使用Docker的时候&#xff0c;定义 Dockerfil…

Lottery 分布式抽奖(个人向记录总结)

1.搭建&#xff08;DDDRPC&#xff09;架构 DDD——微服务架构&#xff08;微服务是对系统拆分的方式&#xff09; &#xff08;Domain-Driven Design 领域驱动设计&#xff09; DDD与MVC同属微服务架构 是由Eric Evans最先提出&#xff0c;目的是对软件所涉及到的领域进行建…

mysql笔记(表导出文件,文件导入表)

遇见权限问题1: cat /etc/my.cnf加入[mysqld] secure_file_priv ""遇见目录错误2:因为 MySQL 服务器没有权限在根目录下创建文件。你可以尝试将文件导出到一个 MySQL 服务器有权限写入的目录下&#xff0c;例如 MySQL 数据目录或 /tmp目录。sudo chmod 755 /path/to…

开源科学工程技术软件

目录 0 参考链接 1 Silx 2 Klampt 3 参数化三维3D软件Dune 3D 4 GPS日志文件查看器GPXSee 5 三维3D软件Chili3D 6 集成电路设计软件XicTools 7 天文学软件Cosmonium 8 计算流体力学软件FluidX3D 9 点云处理软件CloudCompare 10 野外火灾建模软件WindNinja 11 电子设…

.NET MAUI开源架构_2.什么是 .NET MAUI?

1.什么是.NET MAUI&#xff1f; .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架&#xff0c;用于使用 C# 和 XAML 创建本机移动和桌面应用。使用 .NET MAUI&#xff0c;可从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。 .NET MAUI 是一款…

使机器人在执行任务时更加稳定

为了使机器人在执行任务时更加稳定&#xff0c;调整参数时需要考虑多个因素&#xff0c;如步态、速度、角度等。这些参数的调整需要基于实际环境、任务需求和机器人自身的物理特性。以下是一些具体的调整建议&#xff1a; 1. 调整步态和步高 gait_type3; step_height0.03;步态…

iOS热门面试题(四)

问题一&#xff1a;请详细解释iOS中的Core Data框架&#xff0c;包括它的工作原理、优势、以及在实际项目中的应用场景。 Core Data框架概述&#xff1a; Core Data是iOS和macOS开发中一个强大的数据持久化框架&#xff0c;它允许开发者以面向对象的方式管理应用数据。Core D…

pytorch中一些最基本函数和类

1.Tensor操作 Tensor是PyTorch中最基本的数据结构&#xff0c;类似于NumPy的数组&#xff0c;但可以在GPU上运行加速计算。 示例&#xff1a;创建和操作Tensor import torch# 创建一个零填充的Tensor x torch.zeros(3, 3) print(x)# 加法操作 y torch.ones(3, 3) z x y pr…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(三)-机上无线电接入节点无人机

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

BGP笔记的基本概要

技术背景&#xff1a; 在只有IGP&#xff08;诸如OSPF、IS-IS、RIP等协议&#xff0c;因为最初是被设计在一个单域中进行一个路由操纵&#xff0c;因此被统一称为Interior Gateway Protocol&#xff0c;内部网关协议&#xff09;的时代&#xff0c;域间路由无法实现一个全局路由…

Hadolint提升Dockerfile的质量和安全性 —— 筑梦之路

https://github.com/hadolint/hadolint hadolint 在线版本&#xff1a;https://hadolint.github.io/hadolint/ FROM debian RUN export node_version"0.10" \ && apt-get update && apt-get -y install nodejs"$node_verion" COPY packa…

【JavaEE】AOP实现原理

概述 Spring AOP 是基于动态代理来实现AOP的, 此处主要介绍代理模式和Spring AOP的源码剖析 一.代理模式 代理模式是一种常用的设计模式&#xff0c;它允许为其他对象提供代理&#xff0c;以控制对这个对象的访问。这种结构在不改变原始类的基础上&#xff0c;通过引入代理类…

MongoDB教程(一):Linux系统安装mongoDB详细教程

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、Ubuntu…

应急响应总结

应急响应 日志 windows IIS 6.0 及更早版本&#xff1a; C:\WINDOWS\system32\LogFiles\W3SVC[SiteID]\ IIS 7.0 及更高版本&#xff1a; C:\inetpub\logs\LogFiles\W3SVC[SiteID]\ Apache HTTP Server C:\Program Files (x86)\Apache Group\Apache2\logs\ 或者 C:\Prog…

STFT:解决音频-视频零样本学习 (ZSL) 中的挑战

传统的监督学习方法需要大量的标记训练实例来进行训练,视听零样本学习的任务是利用音频和视频模态对对象或场景进行分类&#xff0c;即使在没有可用标记数据的情况下。为了解决传统监督方法的限制&#xff0c;提出了广义零样本学习&#xff08;Generalized Zero-Shot Learning,…

Golang操作ES全系列(olivere curl操作es)

Golang操作ES全系列&#xff08;olivere & curl操作es&#xff09; &#x1f680;全部代码&#xff08;欢迎&#x1f44f;&#x1f3fb;star&#xff09;&#xff1a; https://github.com/ziyifast/ziyifast-code_instruction/tree/main/go-demo/go-es 1 olivere 创建clie…