C#学习系列相关之数组(一)---数组的定义与使用

简介: C#学习系列相关之数组(一)---数组的定义与使用

一、数组定义与初始化

        数组是数据的集合。标量变量一次只能保存一项。数组可以容纳多个项目。这些项目称为数组的元素。数组存储相同数据类型的数据。每个元素都可以通过索引来引用。数组是从零开始的。第一个元素的索引为零。数组是引用类型。

       数组用于存储我们应用程序的数据。我们将数组声明为某种数据类型。我们指定它们的长度。我们用数据初始化数组。我们有几种处理数组的方法。我们可以修改元素、对其进行排序、复制或搜索它们。

 

1、数组的定义
int[] ages;
String[] names;
float[] weights;

       我们有三个数组声明。声明由两部分组成。数组的类型和数组名称。数组的类型具有确定数组中元素类型的数据类型(在我们的示例中为 int、String、float)和一对方括号 []。括号表示我们有一个数组。

2、数组初始化
第一种方式:
int[] num=new int[5]
num[1]=1;
num[2]=2;
num[3]=3;
num[4]=4;
num[5]=5;
//[]中括号内的5是定义数组的长度,接下来对数组内数字进行赋值,如果未赋值的长度其为默认值0
//第二种方式
int[] num=new int[]{1,2,3,4,5}
或者
int[] num=new int[5]{1,2,3,4,5}
//如果中括号内有数组长度,则大括号内的数据一定是指定长度
//没有指定数组的长度。编译器会为我们做这件事
foreach (int i in array)
{
    Console.WriteLine(i);
}

我们使用 foreach 关键字遍历数组并打印其内容。

二、二维三维数组的使用

1、二维数组

int[,] twodim = new int[,] { {1, 2, 3}, {1, 2, 3}  };
int d1 = twodim.GetLength(0);
int d2 = twodim.GetLength(1);
for (int i=0; i<d1; i++)
{
    for (int j=0; j<d2; j++)
    {
        Console.WriteLine(twodim[i, j]);
    }
}

1、定义二维数组的时候,中括号内的要用,分割开

2、Getlength可以获取每个维度的数量

2、三维数组

int[,,] n3 =
{
    {{12, 2, 8}},
    {{14, 5, 2}},
    {{3, 26, 9}},
    {{4, 11, 2}}
};
int d1 = n3.GetLength(0);
int d2 = n3.GetLength(1);
int d3 = n3.GetLength(2);
for (int i=0; i<d1; i++)
{
    for (int j=0; j<d2; j++)
    {
        for (int k=0; k<d3; k++)
        {
            Console.Write(n3[i, j, k] + " ");
        }
    }
}
相关文章
|
4天前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
|
2月前
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
80 2
|
1月前
|
开发框架 缓存 算法
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
|
2月前
|
安全 C# 索引
C#一分钟浅谈:属性与索引器的定义
本文深入浅出地介绍了C#编程中的属性和索引器。属性让字段更安全,通过访问器方法在读写时执行额外操作,如验证数据有效性;索引器则赋予类数组般的访问方式,支持基于索引的数据访问模式。文章通过示例代码展示了如何定义及使用这两种特性,并提供了常见问题及其解决方案,帮助读者写出更健壮、易维护的代码。希望读者能从中学习到如何有效利用属性和索引器增强C#类的功能性。
91 12
|
2月前
|
Linux C# 开发者
Uno Platform 驱动的跨平台应用开发:从零开始的全方位资源指南与定制化学习路径规划,助您轻松上手并精通 C# 与 XAML 编程技巧,打造高效多端一致用户体验的移动与桌面应用程序
【9月更文挑战第8天】Uno Platform 的社区资源与学习路径推荐旨在为初学者和开发者提供全面指南,涵盖官方文档、GitHub 仓库及社区支持,助您掌握使用 C# 和 XAML 创建跨平台原生 UI 的技能。从官网入门教程到进阶技巧,再到活跃社区如 Discord,本指南带领您逐步深入了解 Uno Platform,并提供实用示例代码,帮助您在 Windows、iOS、Android、macOS、Linux 和 WebAssembly 等平台上高效开发。建议先熟悉 C# 和 XAML 基础,然后实践官方教程,研究 GitHub 示例项目,并积极参与社区讨论,不断提升技能。
91 2
|
3月前
|
开发框架 .NET API
C#/.NET/.NET Core推荐学习书籍(24年8月更新)
C#/.NET/.NET Core推荐学习书籍(24年8月更新)
|
4月前
|
Dart 算法 JavaScript
C#数据结构与算法入门教程,值得收藏学习!
C#数据结构与算法入门教程,值得收藏学习!
|
5月前
|
存储 开发框架 .NET
C#中的数组探索
C#中的数组探索
|
13天前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
28 3
|
1月前
|
安全 C# 数据安全/隐私保护
实现C#编程文件夹加锁保护
【10月更文挑战第16天】本文介绍了两种用 C# 实现文件夹保护的方法:一是通过设置文件系统权限,阻止普通用户访问;二是使用加密技术,对文件夹中的文件进行加密,防止未授权访问。提供了示例代码和使用方法,适用于不同安全需求的场景。
101 0