C#二维数组基本用法实例

下面是关于“C#二维数组基本用法实例”的完整攻略。

什么是二维数组

在C#中,数组是一个由相同类型的若干元素在连续的存储空间中所组成的集合。而二维数组则是由多个一维数组组合形成的。可以理解为一个数据表格,有行和列两个维度。

声明二维数组

声明二维数组需要指定行数和列数,并使用两个方括号“[]”来表示。语法如下:

int[,] numbers = new int[3, 4];

上述代码定义了一个3行4列的整数类型的二维数组。需要注意的是,二维数组的元素也是可以初始化的。

int[,] numbers = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

访问二维数组元素

访问二维数组的元素需要指定所在的行和列,语法如下:

int[,] numbers = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
Console.WriteLine(numbers[0, 0]); // 输出为1
Console.WriteLine(numbers[1, 2]); // 输出为6

示例说明1

下面的示例中,我们声明了一个5行4列的整数类型的二维数组,随机生成了每个元素的值,并输出了这个二维数组的内容。

int[,] numbers = new int[5, 4];
Random random = new Random();
for (int row = 0; row < 5; row++)
{
    for (int col = 0; col < 4; col++)
    {
        numbers[row, col] = random.Next(10, 100);
        Console.Write(numbers[row, col] + "\t");
    }
    Console.WriteLine();
}

运行后可以看到类似下面的结果:

10      61      41      71
72      84      29      51
86      27      17      13
97      25      75      14
35      10      21      70

示例说明2

下面的示例中,我们声明了一个学生成绩表格,其中第一列是学生的姓名,第一行是课程科目,其他格子中存储了学生在该科目中的成绩。然后计算出每个学生的平均分,并输出。

string[,] gradeTable = {
    {"Name", "Chinese", "Math", "English", "Politics"},
    {"John", "84", "78", "92", "88"},
    {"Lisa", "90", "92", "87", "91"},
    {"Alice", "76", "68", "70", "85"},
    {"Mike", "82", "90", "88", "82"}
};
for (int row = 1; row < gradeTable.GetLength(0); row++)
{
    string name = gradeTable[row, 0];
    double avgScore = 0;
    int count = 0;
    for (int col = 1; col < gradeTable.GetLength(1); col++)
    {
        int score;
        if (int.TryParse(gradeTable[row, col], out score))
        {
            avgScore += score;
            count++;
        }
    }
    avgScore /= count;
    Console.WriteLine(name + "'s average score is " + avgScore.ToString("0.00"));
}

运行后可以看到类似下面的结果:

John's average score is 85.50
Lisa's average score is 90.00
Alice's average score is 74.75
Mike's average score is 85.50

希望这份攻略可以帮助你学会如何在C#中使用二维数组!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#二维数组基本用法实例 - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • C#实现发送邮件的三种方法

    具体的C#实现发送邮件的三种方法攻略如下: 一、使用SMTP客户端库发送邮件 步骤: 引用System.Net.Mail命名空间 csharp using System.Net.Mail; 创建SmtpClient对象,并设置邮件服务器和端口号等相关信息 csharp SmtpClient smtpClient = new SmtpClient(“smtp.…

    C# 2023年6月3日
    00
  • C#中的枚举类型(Enum)介绍

    当我们需要定义一些具有固定值的常量时,使用枚举类型(Enum)可以更方便地进行管理和调用。在C#中,枚举类型是一种值类型,可以使用关键字enum进行定义。下面我将详细介绍C#中的枚举类型。 枚举类型的基本定义 在C#中,枚举类型可以使用以下语法进行定义: enum 枚举名 { 标识符1 = 值1, 标识符2 = 值2, … } 枚举名为定义枚举项的集合名…

    C# 2023年6月7日
    00
  • 让Json更懂中文(JSON_UNESCAPED_UNICODE)

    让JSON更懂中文是指在通过json_encode函数将数组或对象转换为JSON格式字符串时,保留中文字符而不进行转义,以增强可读性和易用性。这可以通过在调用json_encode函数时使用JSON_UNESCAPED_UNICODE选项来实现。 下面是使用JSON_UNESCAPED_UNICODE选项进行JSON编码的完整攻略: 1. 使用JSON_UN…

    C# 2023年5月31日
    00
  • ASP.NET MVC命名空间时引起错误的解决方法

    当使用ASP.NET MVC框架进行开发时,有时候会遇到命名空间冲突而引起的编译错误。本文将详细讲解如何解决命名空间冲突的问题。 引起错误的原因 在ASP.NET MVC项目中,可能会出现几个不同的类库或者插件都使用了相同的命名空间。这时候编译器就会产生冲突,无法确定要使用哪个类库或插件中的命名空间。从而导致编译失败,程序无法正常运行。 解决方法 1. 使用…

    C# 2023年5月15日
    00
  • c#使用dynamic类型优化反射的方法

    下面是详细讲解“c#使用dynamic类型优化反射的方法”的完整攻略。 1. 前言 在C#中,使用反射可以在运行时动态地获取类型信息并对这些类型进行操作,是一种强大的编程工具。但反射也有一定的缺点,使用反射访问和操作类型的性能相对较低,尤其是当需求需要重复调用反射代码时,这种性能劣势就更加明显。因此,为了更好地优化反射操作的性能,C#提供了一种dynamic…

    C# 2023年5月15日
    00
  • .Net行为型设计模式之中介者模式(Mediator)

    .Net行为型设计模式之中介者模式(Mediator) 中介者模式是一种行为型设计模式,它的目的是减少对象之间的耦合度,增强对象之间的协作性,从而提高整个系统的灵活性和可维护性。 在中介者模式中,对象之间的通信都是通过中介者进行的,而不是直接相互引用。这样一来,系统中的每个对象都只需要跟中介者通信,而不用关心其他对象的存在,使得系统更加松耦合,也更加容易扩展…

    C# 2023年5月31日
    00
  • 比较简单的将数据信息导入wrod文档方案(C# for word)

    完整攻略如下: 标题 比较简单的将数据信息导入Word文档方案(C#forword) 准备工作 安装Microsoft.Office.Interop.Word组件 导入数据信息的步骤 创建Word文档 使用Microsoft.Office.Interop.Word组件创建Word文档,可以使用如下代码: “`csharp // 创建Application对…

    C# 2023年5月15日
    00
  • C# Clear():从集合中移除所有元素

    C#中的Clear()方法是一个实例方法,通常用于清空某些数据结构中的元素,例如字符串、数组、集合等。以下是C# Clear()的完整攻略,包括用法、示例和注意事项。 用法 Clear()方法是通过.运算符调用的实例方法,该方法不接受参数,返回值为void类型。可以使用Clear()方法来清空String、StringBuilder、List、Diction…

    C# 2023年4月19日
    00
合作推广
合作推广
分享本页
返回顶部