C# 二维数组到底该如何定义?

来源:百度知道 编辑:UC知道 时间:2024/05/29 11:50:16
网上看了大多数朋友的问题,结果把我给弄糊涂了,C#中二维数组到底应该如何定义呢?哪位朋友能给出权威的回答!谢谢

有人说这样定义: string[,] arr=new string[12,31]();
也有人说这样定义: string[][] arr=new string[5][5];
还有朲说这样定义: string[,] arr=new string[5][5];
string[][] arr new string[5,5]

我都好疯掉了,到底哪种是对的呀?

真正的二维数组只有string[,] arr = new string[12, 31] 没有第二种
至于那个教科书上经常列出来的所谓交叉数组
比如 string[][] ary = new string[5][];
开始我还真以为是微软弄出来什么新的数据结构,后来一想,我靠,这个不就是string[] 类型的一维数组吗,事实上也确实是这样的,就是写法上有点怪异
我一直觉得 string[][] ary = new string[][5]; 这样写才比较合理

//这样定义就可以,2行3列的数组
string[,] fn = new string[2, 3];
//你可以这样给每个赋值
fn[0, 0] = "string 0-0";
fn[0, 1] = "string 0-1";
fn[0, 2] = "string 0-2";
fn[1, 0] = "string 1-0";
fn[1, 1] = "string 1-1";
fn[1, 2] = "string 1-2";
//这里可以取个值 看看
string m = fn[1, 1];

恩,二维数组是string[,]
string[][]是数组的数组,也就是说,他可以包含不确定个数的字符串~

public class testclass
{
private char[,] chars;
public testclass(int i, int j)
{
chars = new char[i,j];
}

public char this[int i, int j]
{
get
{
return this.chars[i, j];