VSTO入门学习笔记5-数组

一、数组的定义

1、第一种方法,定义大小

  • string[] strArr = string[3];
  • 定义了大小为3的一个字符串类型数组
int[] intArr = new int[20]

2、第二种方法,直接赋值

  • int[] intArr = {1,2,3,4,5,6,7};
  • 定义数组类型,然后大括号包起来要定义的数组
int[] intArr = { 25, 36, 17, 19, 90 };
  • 如果两者结合的写法
int[] intArr = new int[5]{ 25, 36, 17, 19, 90 };
  • 二维数组的定义
string[,] strArr = new string[3,2]{ {"小王","经理" }, {"小李","员工" }, {"小张","主管" } };

二、数组大小

  • arr.length数组的最大下标
  • 这个只适合一维数组,多维数组得到的数据是维度相乘
  • .GetLength(0),表示1维数组最大角标,得到32位整数
  • .GetLength(1),表示2维数组最大角标
  • .GetLongLength(1),表示2维做大角标,得到是64位整数
  • 两个方法都一样,数据类型不同,建议用long
int[,] intArr = new int[2, 3]
{{1,2,3},/*第一行数据*/
{4,5,6 }};/*第二行数据*/
long result = intArr.GetLongLength(1);

Console.WriteLine(result);
Console.ReadKey();

得到结果是3

三、数组遍历

  • 就是循环
  • 多维就嵌套多次循环
  • 多维用arr.GetLength(0),获得32位整数,表示第一个维度,1表示第二个维度,以此类推
  • arr.getlonglength,获得的是64位整数同上用法
int[,] intArr = new int[2, 3]
{{1,2,3},/*第一行数据*/
{4,5,6 }};/*第二行数据*/
string result = null;
for (int r = 0; r < 2; r++)
{
    result += "\n";
    for (int c = 0; c < 3; c++)
    {
        result += intArr[r, c] + "\t";
    }
}
Console.WriteLine(result);
Console.ReadKey();

显示结果


1       2       3
4       5       6

四、经典99乘法表

string[,] strArr = new string[9, 9];
int Row = 0;
int Col = 0;
string result=null;
for (int r = 0; r < 9; r++)
{
    result += "\n";//先换行显示,然后每次双循环完一次,就换行
    Row = r + 1;   //row让从1开始到9
    for (int c = r; c < 9; c++) //第二个循环
    {
        Col = c + 1;			//也是让从1到9
        //把拼接的结果,定义给result  \t是行制表位
        result += Row + "*" + Col + "=" + (Row*Col)+"\t";                
    }
}
Console.WriteLine(result);
Console.ReadKey();

显示结果


1*1=1   1*2=2   1*3=3   1*4=4   1*5=5   1*6=6   1*7=7   1*8=8   1*9=9
2*2=4   2*3=6   2*4=8   2*5=10  2*6=12  2*7=14  2*8=16  2*9=18
3*3=9   3*4=12  3*5=15  3*6=18  3*7=21  3*8=24  3*9=27
4*4=16  4*5=20  4*6=24  4*7=28  4*8=32  4*9=36
5*5=25  5*6=30  5*7=35  5*8=40  5*9=45
6*6=36  6*7=42  6*8=48  6*9=54
7*7=49  7*8=56  7*9=63
8*8=64  8*9=72
9*9=81

版权声明:本文为lyfegf原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。