C#常用数据结构之数组Array

C#常用数据结构之数组Array

什么是数组

在C#中,数组是一种数据结构,它可以用于存储具有相同数据类型的多个元素。数组中的元素可以通过下标来访问,数组下标从0开始,最大下标为数组长度-1。

声明和初始化数组

声明数组

声明数组需要指定数据类型和数组名称,括号中指定数组的容量。例如,声明一个包含5个整数的数组:

int[] arr = new int[5];

初始化数组

可以通过循环逐个赋值,或使用数组初始化器,直接将一组值赋给数组的元素。例如:

int[] arr = new int[5];
// 循环赋值
for (int i = 0; i < arr.Length; i++)
{
    arr[i] = i + 1;
}

// 数组初始化器
int[] arr2 = new int[] { 1, 2, 3, 4, 5 };  // 或写成 int[] arr2 = { 1, 2, 3, 4, 5 };

访问数组元素

可以通过下标来访问数组元素。例如,访问第3个元素:

int[] arr = { 1, 2, 3, 4, 5 };
int x = arr[2];  // x的值是3

数组的常用方法

Length属性

可以使用Length属性来获取数组的元素个数。例如:

int[] arr = new int[5];
int x = arr.Length;  // x的值是5

Copy方法

可以使用Copy方法来复制数组,该方法有两个参数,第一个参数是目标数组,第二个参数是要复制的元素数。例如:

int[] arr = { 1, 2, 3, 4, 5 };
int[] arr2 = new int[5];
Array.Copy(arr, arr2, 5);

Sort方法

可以使用Sort方法来对数组元素排序。例如:

int[] arr = { 3, 1, 5, 4, 2 };
Array.Sort(arr);

示例

示例1: 求平均数

以下是一个示例程序,演示如何使用数组求一组数的平均数。

using System;

class Program
{
    static void Main()
    {
        int[] arr = { 1, 2, 3, 4, 5 };
        int sum = 0;
        for (int i = 0; i < arr.Length; i++)
        {
            sum += arr[i];
        }
        double avg = (double)sum / arr.Length;
        Console.WriteLine($"平均数是{avg}");
    }
}

示例2: 去重

以下是一个示例程序,演示如何使用数组去重。

using System;

class Program
{
    static void Main()
    {
        int[] arr = { 1, 2, 1, 3, 2, 4, 5 };
        int[] arr2 = new int[arr.Length];
        int index = 0;
        for (int i = 0; i < arr.Length; i++)
        {
            if (!Contains(arr2, arr[i]))
            {
                arr2[index++] = arr[i];
            }
        }
        Array.Resize(ref arr2, index);
        Console.WriteLine(string.Join(",", arr2));  // 输出1,2,3,4,5
    }

    // 判断数组中是否包含指定的元素
    static bool Contains(int[] arr, int num)
    {
        for (int i = 0; i < arr.Length; i++)
        {
            if (arr[i] == num)
            {
                return true;
            }
        }
        return false;
    }
}

以上是关于C#常用数据结构之数组Array的完整攻略,它包含了数组的声明和初始化、访问数组元素、常用方法及两个数组的示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#常用数据结构之数组Array - Python技术站

(0)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • C++深入分析讲解链表

    C++深入分析讲解链表 链表概述 链表是数据结构中最基本和重要的一种,它的实现可以分为链表的节点和链表的指针。每个节点都记录着链表中的一个元素,并带有一个指向下一个节点的指针,这样就可以通过遍历指针,达到遍历链表的目的。 链表数据结构 在C++中,链表可以通过结构体或者类来实现,比如以下这个结构体实现的单向链表: struct Node { int data…

    数据结构 2023年5月17日
    00
  • NDK 数据结构之队列与栈等的实现

    NDK 数据结构之队列与栈等的实现 引言 Android NDK 是 Android 开发工具包的一部分,可以用 C 和 C++ 编写应用程序和库。NDK 带来了许多好处,例如可以针对不同的平台进行优化,可以通过调用底层 C/C++ 库实现更高效的算法等。 在本篇文档中,我们将探讨如何使用 NDK 实现一些基础的数据结构,包括队列、栈等等。 队列的实现 队列…

    数据结构 2023年5月17日
    00
  • Java数据结构顺序表的详细讲解

    Java数据结构顺序表的详细讲解 什么是顺序表? 顺序表是一种线性结构,它通过一段连续的存储空间来存储一组元素,每个元素占用一个固定大小的存储单元,元素之间按照一定的顺序紧密排列。 顺序表的实现 在Java中,顺序表可以通过数组实现。数组是一种非常基础的数据结构,它可以用来存储相同类型的数据,数组元素的地址是连续的,因此可以通过下标访问数组中的元素。 实现步…

    数据结构 2023年5月17日
    00
  • 0-学习路线

    超详细的算法学习路线 https://cuijiahua.com/blog/2020/10/life-73.html   主要分为 4 个部分:数学基础、编程能力、算法基础、实战。 1、数学基础 在机器学习算法中,涉及到最为重要的数学基本知识有两个:线性代数和概率论。 这两也是大学的必修课了,如果知识早已还给老师,也没关系,哪里不会学补哪里。 线性代数研究的…

    算法与数据结构 2023年4月17日
    00
  • Redis数据结构之链表详解

    Redis数据结构之链表详解 Redis中,链表是一个非常重要的底层数据结构,被用于实现众多高级数据结构(例如列表、队列等)的底层实现,同时也可以被用户直接使用。这篇文章将详细讲解Redis的链表实现、过程和应用。 链表结构 Redis的链表由多个节点组成,每个节点包含以下三个部分: 前置节点地址(prev) 后置节点地址(next) 节点的值(value)…

    数据结构 2023年5月17日
    00
  • 一文了解mysql索引的数据结构为什么要用B+树

    MySQL索引的数据结构主要为B+树,那么B+树为什么是最适合作为索引数据结构呢?在介绍B+树之前,我们先来了解下B树。 B树B树是一棵多路平衡查找树,也称为B-树(B-tree),主要应用在文件系统和数据库中,可以显著减少I/O操作次数。B树的每个节点存储的元素个数比二叉查找树的节点多,且节点存储的元素是按顺序排列的,这些特点使得在查找过程中可以快速定位需…

    数据结构 2023年5月17日
    00
  • C语言数据结构实现链表逆序并输出

    下面是C语言数据结构实现链表逆序并输出的完整攻略。 1. 题目分析 本题目要求实现对链表的逆序,并依次输出各节点的值。而链表的逆序可以通过改变各节点之间的连接方式来实现。 2. 思路分析 创建一个指针,指向原链表的头结点。 遍历链表,将每个节点的next指针指向它前面的节点,从而实现链表的逆序。 遍历逆序后的链表,从头结点开始,依次输出每个节点的值。 3. …

    数据结构 2023年5月17日
    00
  • Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)

    Java数据结构及算法实例:快速计算二进制数中1的个数 简介 本文将介绍在Java中快速计算二进制数中1的个数的算法。本算法是一种基于位运算的算法,其核心思想是利用位运算的快捷性,将原问题转化为每次计算一位是否为1的问题,使得计算速度大大提升。 背景知识 在理解本算法之前,需要了解Java中的一些背景知识: 1. 位运算 Java中的位运算符有如下几个: &…

    数据结构 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部