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语言近万字为你讲透树与二叉树 什么是树? 树是一种用来组织数据的非线性数据结构,它由一个根节点和若干个子节点组成,并且每个节点可能有若干个子节点。 什么是二叉树? 二叉树是一种特殊的树,它的每个节点最多只有两个子节点,并且分别称为左子节点和右子节点,左子节点在二叉树中永远排在右子节点的前面。 二叉树的遍历方式 二叉树的遍历方式有三种: 前序遍历(preor…

    数据结构 2023年5月17日
    00
  • Java数据结构之KMP算法的实现

    Java数据结构之KMP算法的实现 1. KMP算法的概述 KMP算法的全称是Knuth-Morris-Pratt算法,是一种字符串匹配算法,用于在文本串S内查找一个模式串P的出现位置。它的特点是在P和S两个序列中,当匹配失败时,它会跳过P的部分已匹配的字符,利用这个信息来减少S和P之间的匹配次数,从而提高匹配效率。 2. KMP算法的实现 2.1 预处理失…

    数据结构 2023年5月17日
    00
  • C语言数据结构中约瑟夫环问题探究

    C语言数据结构中约瑟夫环问题探究 什么是约瑟夫环问题? 约瑟夫环问题(Josephus problem)是一个经典的问题,据说是Flavius Josephus发现并命名的。该问题描述为,编号从1到n的n个人按照顺时针方向围坐成一圈,每人持有一个密码。从第1个人开始,顺时针方向每次完整的数m个人,然后让这m个人出圈并把他们的密码拿走不算。当到达队尾时,又从队…

    数据结构 2023年5月17日
    00
  • Java数据结构及算法实例:插入排序 Insertion Sort

    Java数据结构及算法实例:插入排序 Insertion Sort 算法简介 插入排序是一种简单的排序算法,它的工作方式是每次将一个待排序的元素与前面已经排好序的元素逐个比较,并插入到合适的位置。插入排序的时间复杂度为O(n^2),是一种比较低效的排序算法。 算法实现 以下是使用Java语言实现插入排序算法的代码: public static void in…

    数据结构 2023年5月17日
    00
  • 滑动窗口总结

    前言 滑动窗口是双指针的一种特例,可以称为左右指针,在任意时刻,只有一个指针运动,而另一个保持静止。滑动窗口路一般用于解决特定的序列中符合条件的连续的子序列的问题。 好处:时间复杂度 O(n^2) —> O(n) 一、算法应用场景 关键词: 1.满足XXX条件(计算结果、出现次数、同时包含) 2.最长/最短/或最值 3.子串/子数组/子序列 最最最…

    算法与数据结构 2023年4月17日
    00
  • C语言详细分析结构体的内存对齐规则

    C语言详细分析结构体的内存对齐规则 1. 什么是内存对齐 在计算机内存中,每个数据都需要分配一定的内存空间存储,这些空间的大小不一定相同。内存对齐就是要求每个数据按照某个规则,分配其所需的内存空间。 在C语言中,结构体是一种复合数据类型,由多个数据成员组成。结构体的数据成员排列顺序、数据类型均可能不同,因此需要内存对齐来规定内存空间的分配。 2. C语言中结…

    数据结构 2023年5月17日
    00
  • C语言实题讲解快速掌握单链表下

    C语言实题讲解快速掌握单链表下 简介 单链表是常见的一种数据结构,可以存储任意数量的数据,并且可以高效的进行插入、删除和查找操作。本篇文章将介绍如何使用C语言实现单链表,以及如何应对在实现单链表时所遇到的常见问题。 实现过程 数据结构设计 为了实现单链表,我们需要设计一个数据结构来存储节点信息,一般包含两个成员,一个是数据域,用来存储实际的数据,另一个是指针…

    数据结构 2023年5月17日
    00
  • C++实现KDTree 附完整代码

    对于“C++实现KDTree 附完整代码”的攻略,我会分为以下几个部分进行讲解: KDTree的基本概念和算法原理 KDTree的实现思路和整体代码结构 KDTree在实际应用中的应用场景 两个示例应用说明 KDTree基本概念和算法原理 KDTree全称是K-Dimensional Tree,即K维树,是一种便于高维空间数据检索的数据结构。其基本思路是对于…

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