【从Java转C#】第六章:数组

简介: 【从Java转C#】第六章:数组

数组

简单数组

  • 数组的初始化
  • 数组也是引用类型,所以在堆中分配内存,在栈中存放着引用

  • 使用错误的索引会报异常:IndexOutOfRangeException

Array类

  • 创建数组:Array是一个抽象类,不能使用构造函数来进行创建数组
class Program
    {
        static void Main(string[] args)
        {
            Array list = Array.CreateInstance(typeof(int), 5);
            for(int i = 0; i < 5; i++)
            {
                list.SetValue(i, i);
            }
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(list.GetValue(i));
            }
            Console.ReadLine();
        }
    }
  • 复制数组【深浅拷贝
  • 如果数组的元素是值类型,则会复制所有值。
class Program
    {
        static void Main(string[] args)
        {
            int[] array1 = new int[] { 1, 2 };
            int[] array2 = (int[])array1.Clone();
            Console.ReadLine();
        }
    }

  • 如果数组包含引用类型,则不复制元素,只复制引用

  • Clone()和copy()的区别:Clone()会创建一个数组,而Copy()方法必须传递阶数相同且有足够元素的已有数组【类似于分割数组传值】
  • 排序【sort

枚举(Enum)

简介

枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承

声明 enum 变量

声明枚举的一般语法:

enum <enum_name>
{ 
    enumeration list 
};
// enum_name 指定枚举的类型名称。
// enumeration list 是一个用逗号分隔的标识符列表。

枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0.例如:

enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };
实例代码
class Program
    {
        enum Day
        {
            Mon, Tue, Wed, Thu, Fri, Sat, Sun
        };
        static void Main()
        {
            int x = (int)Day.Fri;
            int y = (int)Day.Mon;
            Console.WriteLine("Fri = {0}", x);
            Console.WriteLine("Mon = " + y);
            Console.ReadLine();
        } 
    }


相关文章
|
3月前
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
85 2
|
2月前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
33 4
|
2月前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
33 2
|
2月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
88 2
|
2月前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
53 9
|
2月前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
25 3
|
2月前
|
存储 算法 Java
Java一分钟之-数组的创建与遍历
数组作为Java中存储和操作一组相同类型数据的基本结构,其创建和遍历是编程基础中的基础。通过不同的创建方式,可以根据实际需求灵活地初始化数组。而选择合适的遍历方法,则可以提高代码的可读性和效率。掌握这些基本技能,对于深入学习Java乃至其他编程语言的数据结构和算法都是至关重要的。
30 6
|
2月前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
31 1
|
2月前
|
存储 XML Java
如何在 Java 中将常见文档转换为 PNG 图像数组
如何在 Java 中将常见文档转换为 PNG 图像数组
17 1
|
2月前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
106 9