精华内容
下载资源
问答
  • C#中二维数组int[,]与交叉数组int[][]的区别 2018年09月20日 15:50:06lwjkhx阅读数 992 首先说一下交叉数组这个东西是C#里面的,c++里面是没有的交叉数组这个定义的 int[][]是数组数组,即一个一维数组的每个...

    C#中二维数组int[,]与交叉数组int[][]的区别

    2018年09月20日 15:50:06 lwjkhx 阅读数 992

    首先说一下交叉数组这个东西是C#里面的,c++里面是没有的交叉数组这个定义的

     

    int[][] 是数组的数组,即一个一维数组的每个元素都是一个数组,这个在C++,java等语言里面也是这么定义的;

    int[,]这个是C#中提供的一个二维数组的形式,在C++中并不存在

    看两者定义时的不同:

    int[,] a = new int[2, 3] { { 1, 2, 3 }, { 11, 22, 33 } };

     

    int[][] b = new int[2][];//一维数组

    b[0] = new int[3] { 1, 2, 3 };//对一维数组中的每个元素定义一维数组

    b[1] = new int[4] { 4, 5, 6, 7 };

     

    从代码可以看出来主要有两点不同

    1、定义不同,二维数组直接定义,交叉数组是需要再定义每个数组的(这个好像有点废话);

    2、二维数组是个规则的“矩形”,即每行元素个数都是一样的;交叉数组是没有这个限制的,可以一样也可以不一样(这里说一下,C++中定义int[][]时实际就相当于定义的二维数组,而要是想实现交叉数组应该使用指向数组的指针)

    展开全文
  • [color=darkred]java与c#中二维数组的区别[/color][color=green][/color] public class Array2D...{ public static void main(String[] args)...{ int myInt[][]=new int[5][10]; //遍历,给数组中的每一个...
    [color=darkred]java与c#中二维数组的区别[/color][color=green][/color]
    

    public class Array2D...{
    public static void main(String[] args)...{
    int myInt[][]=new int[5][10];
    //遍历,给数组中的每一个数组赋值
    for(int i=0;i<myInt.length;i++)...{
    for(int j=0;j<myInt[0].length;j++)...{
    myInt[i][j]=i*j;
    }
    }
    System.out.println ("myInt.length="+myInt.length+",myInt[0].length="+myInt[0].length);
    //输出数组每一维的下限和上限
    for(int i=0;i<myInt.length;i++)...{
    for(int j=0;j<myInt[0].length;j++)...{
    System.out.println ("myInt["+i+"]["+j+"]="+myInt[i][j]);
    }
    }
    }
    }



    在C#中int[][] myInt是声明一个交错数组,声明二维数组是这么声明int[,] myInt,上面的代码如果换成C#的,需要如下表示:


    class clsArrat2D
    {
    /** <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    int[,] myInt=new int[5,10];
    //遍历,给数组中的每一个数组赋值
    for(int i=myInt.GetLowerBound(0);i<=myInt.GetUpperBound(0);i++)
    {
    for(int j=myInt.GetLowerBound(1);j<=myInt.GetUpperBound(1);j++)
    {
    myInt[i,j]=i*j;
    }
    }
    //输出数组每一维的下限和上限
    for(int i=0;i<myInt.Rank;i++)
    {
    Console.WriteLine("{0} {1} {2}", i, myInt.GetLowerBound(i), myInt.GetUpperBound(i));
    }
    //遍历,输出二维数组中每一个元素的个数
    for(int i=myInt.GetLowerBound(0);i<=myInt.GetUpperBound(0);i++)
    {
    for(int j=myInt.GetLowerBound(1);j<=myInt.GetUpperBound(1);j++)
    {
    Console.WriteLine("myInt[{0},{1}]={2}",i,j,myInt[i,j]);
    }
    }
    Console.ReadLine();
    }
    }
    展开全文
  • C#中二维数组

    万次阅读 热门讨论 2007-11-05 18:12:00
    一、为什么要使用多维数组 生活中,有很多事物,仅仅用一维数组,将无法恰当地被表示。还是说学生成绩管理吧。一个班级30个学员,你把他们编成1到30号,这很好。但现在有两个班级要管理怎么办?人家每个班级都自有...

     一、为什么要使用多维数组

         生活中,有很多事物,仅仅用一维数组,将无法恰当地被表示。还是说学生成绩管理吧。一个班级30个学员,你把他们编成1到30号,这很好。但现在有两个班级要管理怎么办?人家每个班级都自有自的编号,比如一班学生编是1~30;二班的学生也是1~30。你说,不行,要进行计算机管理,你们两班学员的编号要混在一起,从1号编到60号。 

      

    另外一种情况,仍然只有一个班级30人。但这回他们站到了操场,他们要做广播体操,排成5行6列。这时所有老师都不管学员的编号了,老师会这样喊:“第2排第4个同学,就说你啦!踢错脚了!”。假设我们的校长大人要坐在校长室里,通过一个装有监视器的电脑查看全校学员做广播体操,这时,我们也需要一个多维数组。

    二、二维数组基本语法  

    语法:定义一个二维数组。   

    数据类型 数组名=new  数据类型[第二维大小][第一维大小];   

    举例:   

    int arr=new int[5][6]; //注意,以分号结束。   

    这就是操场上那个“5行6列的学生阵”。当然,哪个是行哪个列凭你的习惯。如果数人头时,喜欢一列一列地数,那你也可以当成它是“5列6行”——台湾人好像有这怪僻——我们还是把它看成5行6列吧。   

    现在:   

    第一排第一个学员是哪个?答:arr[0][0]; 

    第二排第三个学员是?答:arr[1][2];   

    也不并不困难,对不?惟一别扭的其实还是那个老问题:现实上很多东西都是从1开始计数,而在C#里,总是要从0开始计数。   

    接下来,校长说,第一排的全体做得很好啊,他们的广播体操得分全部加上5分!程序如何写?答:   

    for(int col=0; col<6; col++) 

      arr[0][col] += 5; 

      

       对了,这里我没有用 i 来作循环的增量,而是用col。因为col在英语里表示“列”,这样更直观对不?下面要用到行,则用row。   

    广播操做到“跳跃运动”了,校长大人在办公室蹦了两下,感觉自已青春依旧,大为开心,决定给所有学员都加1分,程序如何写?答:   

    for(int row = 0; row < 5; row++) 

       for(int col = 0; col < 6; col++) 

       

           arr[row][col] += 1; 

       } 

      

    看明白了吗?在二维数组,要确定一个元素,必须使用两个下标。 

    另外,这个例子也演示了如何遍历一个二维数组:使用双层循环。第一层循环让row 从 0到 4, 用于遍历每一行;col从0到5,遍历每一行中的每一列。 

    (遍历:访问某一集合中的每一个元素的过程)   

    大家把这两个程序都实际试一试.

    三、二维数组初始化

    int arr[5][6] = 

        { 0, 1, 2, 3, 4, 5},           

        {10,11,12,13,14,15}, 

        {20,21,22,23,24,25}, 

        {30,31,32,33,34,35}, 

        {40,41,42,43,44,45}, 

    }; //注意,同样以分号结束 

      

    初始化二维数组使用了两层{},内层初始化第一维,每个内层之间用逗号分隔。 

    例:  

    我们可以把这个数组通过双层循环输出:  

    for(int row = 0; row < 5; row++) 

    {  

       for(int col = 0; col < 6; col++) 

       { 

           Console.WriteLine("{0} ",arr[row][col]); 

       

      

    这段代码会把二维数组arr中的所有元素(5*6=30个),一行一个地,一古脑地输出,并不适于我们了解它的二维结构。我们在输出上做些修饰: 

      

    for(int row = 0; row < 5; row++) 

    {  

       Console.WriteLine("" +( row + 1).ToStirng()+ ": "); 

      

       for(int col = 0; col < 6; col++) 

       { 

           Console.WriteLine("{0}  ",arr[row][col] ); //同一行的元素用逗号分开 

       } 

       

      Console.WriteLine(); //换行 

      

    请大家分别上机试验这两段代码对比输出结果明白二维数组中各元素次序。下面是完整程序中,后一段代码的输出: 

    四、综合举例

    1.两个二给数组相加

    using System;

    using System.Collections.Generic;

    using System.Text;

    namespace ListArrayApp

    {

        class IIArray

        {

            int[,] aArray = new int[3, 3];

            int[,] bArray = new int[3, 3];

            int[,] cArray = new int[3, 3];

            //接受

            public void AcceptValue()

            {

                Console.WriteLine("请输入第一个数组的值:");

                for (int i = 0; i < aArray.GetLength(0); i++)

                {

                    for (int j = 0; j < aArray.GetLength(1); j++)

                    {

                        aArray[i, j] = int.Parse(Console.ReadLine());

                    }

                }

                Console.WriteLine();

                Console.WriteLine("请输入二个数组的值:");

                for (int i = 0; i < bArray.GetLength(0); i++)

                {

                    for (int j = 0; j < bArray.GetLength(1); j++)

                    {

                        bArray[i, j] = int.Parse(Console.ReadLine());

                    }

                }

            }

            //计算

            public void AddValue()

            {

                for (int i = 0; i < aArray.GetLength(0); i++)

                {

                    for (int j = 0; j < aArray.GetLength(1); j++)

                    {

                        cArray[i, j] = aArray[i, j];

                    }

                }

                for (int i = 0; i < bArray.GetLength(0); i++)

                {

                    for (int j = 0; j < bArray.GetLength(1); j++)

                    {

                        cArray[i, j] += bArray[i, j];

                    }

                }

            }

            //输出

            public void DisplayValue()

            {

                Console.WriteLine("第一个数组如下:");

                for (int i = 0; i < aArray.GetLength(0); i++)

                {

                    for (int j = 0; j < aArray.GetLength(1); j++)

                    {

                        Console.Write("{0}  ", aArray[i, j]);

                    }

                    Console.WriteLine();

                }

                Console.WriteLine();

                Console.WriteLine("第二个数组如下:");

                for (int i = 0; i < bArray.GetLength(0); i++)

                {

                    for (int j = 0; j < bArray.GetLength(1); j++)

                    {

                        Console.Write("{0}  ", bArray[i, j]);

                    }

                    Console.WriteLine();

                }

                Console.WriteLine();

                Console.WriteLine("计算结果数组如下:");

                for (int i = 0; i < cArray.GetLength(0); i++)

                {

                    for (int j = 0; j < cArray.GetLength(1); j++)

                    {

                        Console.Write("{0}  ", cArray[i, j]);

                    }

                    Console.WriteLine();

                }           

            }

        }

        class Program

        {

            static void Main(string[] args)

            {

                IIArray sa = new IIArray();

                sa.AcceptValue();

                sa.AddValue();

                sa.DisplayValue();

                Console.ReadLine();

            }

        }

    }

    2.求杨辉三角(又称Pascal三角)

    using System;

    using System.Collections.Generic;

    using System.Text;

    namespace IIIArrayApp

    {

        class Program

        {

            static void Main(string[] args)

            {

                int[,] sArray = new int[10, 10];

                sArray[0, 0] = 1;

                for (int i = 1; i <sArray.GetLength(0); i++)

                {

                    sArray[i, 0] = 1;

                    sArray[i, i] = 1;

                    for (int j = 1; j <=i; j++)

                    {

                        sArray[i, j] = sArray[i - 1, j - 1] + sArray[i - 1, j];

                    }

                }

                for (int i = 0; i < sArray.GetLength(0); i++)

                {

                    for (int j = 0; j <=i; j++)

                    {

                        Console.Write("{0}  ", sArray[i, j]);

                    }

                    Console.WriteLine();

                }

                Console.ReadLine();

            }

        }

    }

     
    展开全文
  • 主要介绍了C#和Java中二维数组区别分析,主要讲述了二维数组C#和Java中定义及应用的区别,非常实用,需要的朋友可以参考下
  • array.length是二维数组中的主数组的长度,可以表示数组的行数array[i].length是其中分数组的长度,即第i行的长度 此外 还有方法GetLength(),获取指定维度的的数量 若是二维数组,则有 array.GetLength(0);//获取第...

    array.length是二维数组中的主数组的长度,可以表示数组的行数

    array[i].length是其中分数组的长度,即第i行的长度
    此外 还有方法GetLength(),获取指定维度的的数量

    若是二维数组,则有
    array.GetLength(0);//获取第一维的长度,即行数
    array.GetLength(1);//获取第二维的长度,即列数

    四维数组
    int[,] arr = new int[9, 8, 7, 6];

    arr.Rank;//返回4
    arr.GetLength(0);//返回9
    arr.GetLength(1);//返回8
    arr.GetLength(2);//返回7
    arr.GetLength(3);//返回6
    arr.GetUpperBound(0)+1;//返回9
    arr.Length;//返回3024

    容易混淆的还有size()方法,size()方法是针对集合而言,例如List,Set和Map都有size()方法,此外string类最初只有length(),引入STL之后,为了兼容也加入了size()方法,两者没有区别。

    展开全文
  • ![图片](https://img-ask.csdn.net/upload/201703/12/1489308313_864451.jpg)
  • C#中二维数组的使用

    2009-12-13 21:34:00
    今天熟悉了下二维数组的使用,大概使用过程:就是先把DataTable数据存入到二维数组,然后再把二维数组循环读取出来。测试代码如下(测试代码没做异常处理): ///获取DataTable数据集 DataTable dt = GetData(); ...
  • C#中二进制数组h和各种常规数组的转换,二进制序列化和json序列化方法以及对应的反序列化方法的例子,帮助初学者。
  • C#中二维数组如何紧到下拉框

    千次阅读 2005-04-22 16:03:00
    C#中定义一个二维数组 string[,] ar = new string[20,20]; ar[0,0]="0"; ar[0,1]="1"; ar[1,0]="面议"; ar[1,1]="1500以下"; 如何将这个二维数组紧接到下拉框: 
  • java中使用二 数组public class Array2D...{ public static void main(String[] args)...{ int myInt[][]=new int[5][10]; //遍历,给数组中的每一个数组赋值 for(int i=0;i for(int j=0;j 
  • 本人是从Java转向C#的,由于工作需要,感觉C#和Java的很多类似性,所以在使用C#的时候总喜欢套用Java的,因为他们太像了,然而今天却碰了一鼻子灰,原因就在使用二维数组上。 在Java中使用二维数组可以如下代码: ...
  • 那么,接下来,我们将会通过对Python二维数组的理解来为大家解读这方面的知识。Python中没有数组的数据结构,但列表很像数组,如:a=[0,1,2]这时a[0]=0, a[1]=1, a[[2]=2,但引出一个问题,即如果数组a想定义为0到...
  • 本人是从Java转向C#的,由于工作需要,感觉C#和Java的很多类似性,所以在使用C#的时候总喜欢套用Java的,因为他们太像了,然而今天却碰了一鼻子灰,原因就在使用二维数组上。 在Java中使用二维数组可以如下代码: ...
  • C++中二维数组new小结

    2009-08-09 01:33:12
    C++中二维数组new小结 二维数组new小结转至水木清华1.  A (*ga)[n] = new A[m][n]; ... delete []ga;缺点:n必须是已知优点:调用直观,连续储存,程序简洁(经过测试,析构函数能正确调用) 2. A** ga = new A...
  • 这里的实际意义是用于决策树的输入信息,500条信息,每条信息有18维特征和1ID。数据按列输入,也就是每次将这一(特征)的信息全部输入。 int readInToMatrix(string FilePath) { int row = 30; int ...
  • 主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下
  • 二进制数组和图像相互转换的函数: //图像转换成二进制 private byte[] ImageToByte(Image Picture) { MemoryStream ms = new MemoryStream(); if (Picture == null) return n
  • C++中用new动态创建二维数组的格式一般是这样: TYPE (*p)[N] = new TYPE [][N]; 其中,TYPE是某种类型,N是二维数组的列数。采用这种格式,列数必须指出,而行数无需指定。在这里,p的类型是TYPE*[N],即是指向一...
  • 简单介绍了下c#中二维数组的用法,不是很多的二维数组举例````请见谅

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 259
精华内容 103
关键字:

c#中二维数组

c# 订阅