• 一天一小步_我学C#入门精典_第七天


    数组

    (3)数组,前面的所类型有一个共同点:它们都只存储一人值(结构中存储一组值).有时候需要存储许多数据,这样就不方便了.有时需要同时存储类型相同的几个值,面不是每个值使用不同的变量.

    例如,假定要对所朋友的姓名执行一些操作.可以使用简单的字符串变量,如下所示:

    string friendName1 = "Robert";
    string friendName2 = "Mike";
    string friendName3 = "Lily";

     另一种方式是使用数组.数组是一个变量的下标列表,存储在数组类型的变量中.例如,有一个数组friendNames存储上述的3个名字.用下标访问该数组中的各个成员.

    数组的条目常称为元素.

    1)声明数组

    数组的声明:<baseType>[] <name>;

    其中,<baseType>可以是任何变量类型,包括枚举和结构类型.

    数组必须在访问之前初始化.

    数组的初始化有两种方式.可以以字面形式指定数组的完整内容,也可以指定数组的大小,再使用关键字new初始化所有的数组数组元素.

    使用字面值指定数组,只需要提供一个用逗号分隔开的元素值列表,该列表放在花括号中,例:

    int[] myIntArray = {919293949};

    另一种方式:

    int[] myIntArray = new int[5];

     这里使用斗争字new显式地初始化数组,用一个常量定义其大小.这种方式会给所有的数组元素赋予同一个默认值,对于数值来说,基默认值是0.

    也可以用非常量的变量来进行初始化,例:

    int[] myIntArray = new int[arraySize];

    还可以使用这两种初始化方式的组合,使用这方式,数组大小必须与元素个数相匹配:

    int[] myIntArray = new int [5] {919293949};

     如果使用变量定义其大小,该变量必须是一个常量:

    const int arraySize = 5;//如果省略了关键字const,这段代码就会失败.
    int[] myIntArray = new int [arraySize] {9192939 ,49};

    与其他变量类型一样,不需要在声明的同时进行初始化.

    static void Main(string[] args)
    {
        
    //定义一个string数组
        string[] friendName = {"Robert""Mike""Lily"};
        
    int i;
        Console.WriteLine(
    "Here are {0} of my friends:", friendNames.Length);
        
    //循环输出string数组中的内容
        for(i=0; i < friendNames.Length; i++)
        {
            Console.WriteLine(friendNames[i]);
        }
        Console.ReadKey();
    }

    2)foreach循环

    foreach循环可以用简便的语法定位数组中的每个元素 :

    foreach (<baseType> <name> int <array>)
    {
        
    //can use <name> for each element
    }

     这个循环会迭代每个元素,依次把每个元素放在变量<name>中,且不存在访问非法元素的危险.修改代码:

    static void Main (string[] args)
    {
        
    string[] friendNames = {"Robert""Mike""Lily"};
        Console.WriteLine(
    "Here are {0} of my friends:", friendNames.Length);
        
    foreach (string friendName in friendName)
        {
            Console.WriteLine(fiendName);
        }
        Console.ReadKey();
    }

     这段代码的输出结果与前面完全相同.

    使用这种方法和标准的for循环的主要区别是foreach循环对数组内容进行只读访问.不能用于赋值.

    3)多维数组

    多维数组就是使用多个下标访问其元素的数组.

    例如,假定要确定一座山相对于某位置的高度,可以使用两个坐标x 和y 来指定一个位置.把这两个坐标作下标,数组hillHeight就可以用每对坐标来存储高度,这就要使用多维数组了.

    二维数组的声明:

    <baseType>{,} <name>;

    多维数组只需要更多的逗号:

    <baseType{,,,} <name>;

    该语句声明了一个4维数组.

     赋值:

    double[,] hillHeight = new double[3,4];

     另外,还可以使用字面值进行初始的赋值:

    double[,] hillHeight = {{1,2,3,4}, {2,3,4,5}, {3,4,5,6}};

     访问数组只需指定它们的下标,并用逗号分隔开:

    hillHeight[2,1]

     foreach循环可能访问多维数组中的所元素,基方式与访问一维数组相同:

    double[,] hillHeight = {{1,2,3,4}, {2,3,4,5} {3,4,5,6}};
    foreach (double height in hillHeight)
    {
        Console.WriteLine(
    "{0}", height);
    }

     元素的输出顺序与赋予字面值的顺序相同:

    hillHeight[0,0]
    hillHeight[
    0,1]
    hillHeight[
    0,2]
    hillHeight[
    0,3]
    hillHeight[
    1,0]
    hillHeight[
    1,1]
    hillHeight[
    1,2]
  • 相关阅读:
    MyEclipse配置输出控制台信息至文本文件里
    IOS开发证书显示“此证书的签发者无效”解决方法
    leetcode之Find All Numbers Disappeared in an Array
    自己定义控件三部曲视图篇(二)——FlowLayout自适应容器实现
    浅谈BloomFilter【上】基本概念和实现原理
    mybatis 常用的jabcType与javaType对应
    springboot WebMvcConfigurerAdapter替代
    动态insert mybatis与ibatis
    动态set mybatis与ibatis的写法
    springboot 配置mybatis打印sql
  • 原文地址:https://www.cnblogs.com/soso_ak/p/1440083.html
Copyright © 2020-2023  润新知