2010-05-16 86 views
46

Làm cách nào để xác định kích thước (chiều dài/Số đối tượng) trong một mảng trong C#?Kích thước mảng (Chiều dài) trong C#

+1

@Marcelo: ... nhưng nó vẫn không thể trả lời câu hỏi thực sự đơn giản như "Đâu là kính của tôi". ;) – Guffa

+2

Ý của bạn là gì với "kích thước"? Số lượng phần tử hoặc kích thước tính bằng byte? –

+8

tôi không thể tin rằng mọi người thực sự đưa ra các loại câu hỏi này. – fearofawhackplanet

Trả lời

5

yourArray.Length :)

6

Với Length tài sản.

int[] foo = new int[10]; 
int n = foo.Length; // n == 10 
+1

Cảm ơn bạn rất nhiều – Amal

97

Nếu đó là một mảng một chiều a,

a.Length 

sẽ cho số phần tử của a.

Nếu b là một mảng đa chiều hình chữ nhật (ví dụ, int[,] b = new int[3, 5];)

b.Rank 

sẽ cung cấp cho các số kích thước (2) và

b.GetLength(dimensionIndex) 

sẽ nhận được độ dài của bất kỳ trao thứ nguyên (lập chỉ mục dựa trên 0 cho các thứ nguyên - vì vậy b.GetLength(0) là 3 và b.GetLength(1) là 5).

Xem System.Array documentation để biết thêm thông tin.

Như @Lucero chỉ ra trong các nhận xét, có một khái niệm về một "mảng răng cưa", thực sự không có gì khác ngoài mảng mảng đơn chiều (thường là một chiều).

Ví dụ, người ta có thể có những điều sau đây:

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}; 

Lưu ý rằng 3 thành viên của c tất cả đều có độ dài khác nhau. Trong trường hợp này, như trước c.Length sẽ cho biết số phần tử của c, (3) và c[0].Length, c[1].Lengthc[2].Length tương ứng là 3, 2 và 7.

+1

Để hoàn thành, bạn cũng có thể liệt kê cách các mảng bị lởm chởm làm việc (ví dụ 'int [] []') ;-) – Lucero

+0

Tôi đã xem nó, @Lucerno, nhưng đã tìm ra một vấn đề khác. của mọi thứ _inside_ một mảng - một mảng có răng cưa thực sự chỉ là một mảng có kích thước đơn có thể chứa các mảng có kích thước đơn, vì tôi chắc chắn bạn biết. –

+2

tất nhiên tôi biết rằng bạn đúng và đó là lý do tại sao tôi đã thêm nhận xét với một mặt cười thay vì tự viết câu trả lời. Tuy nhiên, sự khác biệt giữa '[,]' và '[] []' dường như không rõ ràng đối với tất cả các newbie .NET, vì vậy nó có thể đáng chú ý là '[] []' không phải là một mảng đa chiều trong câu trả lời của bạn có ý nghĩa. – Lucero

26

Bạn có thể xem số documentation for Array để tìm câu trả lời cho câu hỏi này.

Trong trường hợp này bạn có thể cần Length:

int sizeOfArray = array.Length; 

Nhưng vì đây là một câu hỏi cơ bản như vậy và bạn không có nghi ngờ có nhiều hơn như thế này, chứ không phải chỉ nói cho bạn câu trả lời Tôi muốn nói bạn làm thế nào để tìm câu trả lời cho mình.

Visual Studio Intellisense

Khi bạn gõ tên của một biến và bấm phím . nó cho bạn thấy một danh sách tất cả các phương pháp, thuộc tính, sự kiện, vv có sẵn trên đối tượng đó. Khi bạn đánh dấu một thành viên, nó sẽ cho bạn một mô tả ngắn gọn về những gì nó làm.

Press F1

Nếu bạn tìm thấy một phương pháp hay tài sản mà có thể làm những gì bạn muốn nhưng bạn không chắc chắn, bạn có thể di chuyển con trỏ trên nó và nhấn F1 để được giúp đỡ . Ở đây bạn sẽ có được một mô tả chi tiết hơn cùng với các liên kết đến thông tin liên quan.

Tìm kiếm

Các thuật ngữ tìm kiếm size of array in C# cho nhiều liên kết cho bạn biết câu trả lời cho câu hỏi của bạn và nhiều hơn nữa. Một trong những kỹ năng quan trọng nhất mà một lập trình viên phải học là tìm kiếm thông tin như thế nào. Nó thường nhanh hơn để tìm câu trả lời cho mình, đặc biệt là nếu cùng một câu hỏi đã được hỏi trước đó.

Sử dụng một hướng dẫn

Nếu bạn chỉ mới bắt đầu học C# bạn sẽ tìm thấy nó dễ dàng hơn để làm theo hướng dẫn. Tôi có thể giới thiệu số C# tutorials trên MSDN. Nếu bạn muốn có một cuốn sách, tôi khuyên bạn nên Essential C#.

Stack Overflow

Nếu bạn không thể tìm thấy câu trả lời trên của riêng bạn, xin vui lòng gửi câu hỏi về Stack Overflow. Nhưng chúng tôi đánh giá cao nếu bạn cho thấy rằng bạn đã nỗ lực tự tìm câu trả lời trước.

+1

Công việc tốt, Mark, nhưng có thể là quá mức cần thiết! – Nayan

+1

@Nayan: Cảm ơn! Mặc dù điều tuyệt vời là OP nhận được câu trả lời của anh nhanh chóng từ các áp phích khác, tôi cảm thấy điều quan trọng hơn là phải dạy người mới bắt đầu cách tìm thông tin thay vì dạy họ câu trả lời cho các câu hỏi cụ thể. Tôi hy vọng OP thấy câu trả lời này hữu ích và rằng họ tiết kiệm cho họ phải hỏi hàng trăm câu hỏi mà họ có thể tìm thấy câu trả lời cho chính họ. –

+12

+1 để dành thời gian thực hiện phương pháp này - "cho người đàn ông cá ..." –

5

Đối với một mảng không gian duy nhất, bạn sử dụng Length tài sản:

int size = theArray.Length; 

Đối với nhiều mảng chiều các Length tài sản trả về tổng số các mặt hàng trong mảng. Bạn có thể sử dụng phương pháp GetLength để có được kích thước của một trong các kích thước:

int size0 = theArray.GetLength(0); 
7

cho 1 chiều mảng

int[] listItems = new int[] {2,4,8}; 
int length = listItems.Length; 

cho mảng đa chiều

int length = listItems.Rank; 

Để có được kích thước của 1 kích thước

int length = listItems.GetLength(0); 
+1

Thuộc tính 'Xếp hạng' không trả lại số mục, nó trả về số thứ nguyên. – Guffa

1

nó đi như thế này: 1D:

type[] name=new type[size] //or =new type[]{.....elements...} 

2D:

type[][]name=new type[size][] //second brackets are emtpy 

sau đó khi bạn sử dụng mảng này:

name[i]=new type[size_of_sec.Dim] 

hoặc Bạn có thể tuyên bố một cái gì đó giống như một ma trận

type[ , ] name=new type [size1,size2] 
2

Trong hầu hết các trường hợp chung 'Độ dài' và 'Đếm' được sử dụng.

Array:

int[] myArray = new int[size]; 
int noOfElements = myArray.Length; 

Typed Danh sách Array:

List <int> myArray = new List<int>(); 
int noOfElements = myArray.Count; 
Các vấn đề liên quan