C#中的数组大小(长度)

Ama*_*mal 85 c# arrays size

如何在C#中确定数组的大小(项目的长度/数量)?

Bla*_*rad 142

如果它是一维数组a,

a.Length
Run Code Online (Sandbox Code Playgroud)

将给出元素的数量a.

如果b是矩形多维数组(例如int[,] b = new int[3, 5];)

b.Rank
Run Code Online (Sandbox Code Playgroud)

将给出维数(2)和

b.GetLength(dimensionIndex)
Run Code Online (Sandbox Code Playgroud)

将获得任何给定维度的长度(基于0的索引为维度 - 因此b.GetLength(0)是3并且b.GetLength(1)是5).

有关详细信息,请参阅System.Array文档.

正如@Lucero在评论中指出的那样,有一个"锯齿状数组"的概念,它实际上只不过是一个(通常是单维的)数组的单维数组.

例如,可以有以下内容:

int[][] c = new int[3][];
c[0] = new int[] {1, 2, 3};
c[1] = new int[] {3, 14};
c[2] = new int[] {1, 1, 2, 3, 5, 8, 13};
Run Code Online (Sandbox Code Playgroud)

请注意,c所有3个成员都有不同的长度.在这种情况下,如之前c.Length将指示的元件的数量c,(3)和c[0].Length,c[1].Length以及c[2].Length将是3,图2和7,分别.

  • 当然我知道你是对的,这就是为什么我用笑脸添加评论而不是自己写答案.但是,`[,]`和`[] []`之间的区别对于所有.NET新手来说似乎并不清楚,因此可能仍然值得注意的是`[] []`不是多维数组你的答案感觉. (3认同)
  • 好答案.但是,你可能想要改变`b.GetLength [0]是3而b.GetLength [1]是5`应该是`b.GetLength(0)和b.GetLength(1)`. (2认同)

Mar*_*ers 28

您可以查看Array文档以找出此问题的答案.

在这种特殊情况下,您可能需要长度:

int sizeOfArray = array.Length;
Run Code Online (Sandbox Code Playgroud)

但由于这是一个基本问题,你无疑会有更多这样的问题,而不仅仅是告诉你答案我宁愿告诉你如何自己找到答案.

Visual Studio Intellisense

当您键入变量的名称并按下该.键时,它会显示该对象上可用的所有方法,属性,事件等的列表.当您突出显示某个成员时,它会简要介绍它的作用.

按F1

如果您发现某个方法或属性可能会执行您想要但您不确定的方法或属性,则可以将光标移到其上并按F1以获取帮助.在这里,您可以获得更详细的描述以及相关信息的链接.

搜索

搜索字词size of array in C#提供了许多链接,可以告诉您问题的答案以及更多内容.程序员必须学习的最重要技能之一是如何查找信息.自己找到答案通常会更快,特别是如果之前已经提出同样的问题.

使用教程

如果您刚开始学习C#,您会发现更容易学习C++.我可以在MSDN上推荐C#教程.如果你想要一本书,我会推荐Essential C#.

堆栈溢出

如果您无法自己找到答案,请随时在Stack Overflow上发布问题.但是,如果您表明您已经尽力自己找到答案,我们将不胜感激.

  • +1花时间采取这种方法 - "给一个人一条鱼..."等. (12认同)
  • 马克,做得好,但可能太夸张了! (3认同)
  • @Nayan:谢谢!虽然OP从其他发帖者那里快速得到答案是件好事,但我认为教初学者如何查找信息比教他们特定问题的答案更重要。我希望OP认为这个答案有用,并且它使他们不必提出数百个问题,而他们本可以自己找到答案。 (2认同)

Joh*_*nny 14

对于一维数组

int[] listItems = new int[] {2,4,8};
int length = listItems.Length;
Run Code Online (Sandbox Code Playgroud)

对于多维数组

int length = listItems.Rank;
Run Code Online (Sandbox Code Playgroud)

获得1维的大小

int length =  listItems.GetLength(0);
Run Code Online (Sandbox Code Playgroud)

  • `Rank`属性不返回项目数,它返回维数. (2认同)

Jor*_*ren 8

随着Length财产.

int[] foo = new int[10];
int n = foo.Length; // n == 10
Run Code Online (Sandbox Code Playgroud)


Pet*_*hev 7

yourArray.Length :)


Guf*_*ffa 5

对于单维数组,您可以使用以下Length属性:

int size = theArray.Length;
Run Code Online (Sandbox Code Playgroud)

对于多维数组,该Length属性返回数组中的项目总数.您可以使用该GetLength方法获取其中一个维度的大小:

int size0 = theArray.GetLength(0);
Run Code Online (Sandbox Code Playgroud)