Bagaimana saya bisa menentukan ukuran array (panjang / jumlah item) di C #?
Bagaimana saya bisa menentukan ukuran array (panjang / jumlah item) di C #?
Jawaban:
Jika itu larik satu dimensi a
,
a.Length
akan memberikan jumlah elemen a
.
Jika b
adalah larik multi-dimensi persegi panjang (misalnya, int[,] b = new int[3, 5];
)
b.Rank
akan memberikan jumlah dimensi (2) dan
b.GetLength(dimensionIndex)
akan mendapatkan panjang dimensi tertentu (pengindeksan berbasis 0 untuk dimensi - begitu b.GetLength(0)
juga 3 dan b.GetLength(1)
5).
Lihat dokumentasi System.Array untuk info lebih lanjut.
Seperti yang @Lucero tunjukkan di komentar, ada konsep "larik bergerigi", yang sebenarnya tidak lebih dari larik dimensi tunggal (biasanya satu dimensi).
Misalnya, seseorang dapat memiliki yang berikut ini:
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};
Perhatikan bahwa 3 anggota c
semuanya memiliki panjang yang berbeda. Dalam hal ini, seperti sebelumnya c.Length
akan menunjukkan jumlah elemen c
, (3) dan c[0].Length
, c[1].Length
dan c[2].Length
akan 3, 2, dan 7, masing-masing.
int[][]
) ;-)
[,]
dan [][]
tampaknya tidak jelas untuk semua pemula NET., Jadi mungkin masih perlu dicatat bahwa [][]
itu bukan array multidimensi dalam pengertian jawaban Anda.
b.GetLength[0] is 3 and b.GetLength[1] is 5
harus b.GetLength(0) and b.GetLength(1)
.
Anda dapat melihat dokumentasi Array untuk mengetahui jawaban dari pertanyaan ini.
Dalam kasus khusus ini Anda mungkin membutuhkan Panjang :
int sizeOfArray = array.Length;
Tetapi karena ini adalah pertanyaan mendasar dan Anda pasti memiliki lebih banyak pertanyaan seperti ini, daripada hanya memberi tahu Anda jawabannya, saya lebih suka memberi tahu Anda bagaimana menemukan jawabannya sendiri.
Visual Studio Intellisense
Saat Anda mengetik nama variabel dan menekan .
tombolnya, Anda akan melihat daftar semua metode, properti, peristiwa, dll. Yang tersedia di objek itu. Saat Anda menyorot seorang anggota, itu memberi Anda deskripsi singkat tentang apa yang dilakukannya.
Tekan F1
Jika Anda menemukan metode atau properti yang mungkin melakukan apa yang Anda inginkan tetapi Anda tidak yakin, Anda dapat memindahkan kursor ke atasnya dan menekan F1 untuk mendapatkan bantuan. Di sini Anda mendapatkan deskripsi yang jauh lebih rinci ditambah tautan ke informasi terkait.
Cari
Istilah penelusuran size of array in C#
memberikan banyak tautan yang memberi tahu Anda jawaban atas pertanyaan Anda dan banyak lagi. Salah satu keterampilan terpenting yang harus dipelajari seorang programmer adalah bagaimana menemukan informasi. Seringkali lebih cepat untuk menemukan jawabannya sendiri, terutama jika pertanyaan yang sama telah ditanyakan sebelumnya.
Gunakan tutorial
Jika Anda baru mulai mempelajari C #, Anda akan lebih mudah mengikuti tutorial. Saya dapat merekomendasikan tutorial C # di MSDN. Jika Anda menginginkan sebuah buku, saya merekomendasikan Essential C # .
Stack Overflow
Jika Anda tidak dapat menemukan jawabannya sendiri, silakan posting pertanyaan di Stack Overflow. Tetapi kami menghargai jika Anda menunjukkan bahwa Anda telah berusaha untuk menemukan jawabannya sendiri terlebih dahulu.
untuk larik 1 dimensi
int[] listItems = new int[] {2,4,8};
int length = listItems.Length;
untuk array multidimensi
int length = listItems.Rank;
Untuk mendapatkan ukuran 1 dimensi
int length = listItems.GetLength(0);
Rank
properti tidak kembali jumlah item, ia mengembalikan jumlah dimensi.
Length
, Rank
, GetLength
)
yourArray.Length
:)
Untuk array dimensi tunggal, Anda menggunakan Length
properti:
int size = theArray.Length;
Untuk beberapa array dimensi, Length
properti mengembalikan jumlah item dalam array. Anda dapat menggunakan GetLength
metode ini untuk mendapatkan ukuran salah satu dimensi:
int size0 = theArray.GetLength(0);
bunyinya seperti ini: 1D:
type[] name=new type[size] //or =new type[]{.....elements...}
2D:
type[][]name=new type[size][] //second brackets are emtpy
lalu saat Anda menggunakan larik ini:
name[i]=new type[size_of_sec.Dim]
atau Anda dapat mendeklarasikan sesuatu seperti matriks
type[ , ] name=new type [size1,size2]
Apa yang terlewatkan sejauh ini adalah apa yang tiba-tiba membuat saya kesal:
Bagaimana cara mengetahui jumlah item di dalam array? Apakah .Length
sama .Count
dengan Daftar?
Jawabannya adalah: jumlah item tipe X yang telah dimasukkan ke dalam array tipe X yang dibuat dengan new X[number]
Anda harus membawanya sendiri !
Misalnya. menggunakan penghitung: int countItemsInArray = 0
dan countItemsInArray++
untuk setiap tugas ke array Anda.
(Array yang baru saja dibuat new X[number]
memiliki semua ruang untuk number
item (referensi) tipe X sudah dialokasikan, Anda dapat menetapkan ke tempat mana pun di dalamnya sebagai tugas pertama Anda, misalnya (if number
= 100 dan nama variabel = a
) a[50] = new X();
.
Saya tidak tahu apakah C # menentukan nilai awal dari setiap tempat di dalam array saat dibuat, jika tidak atau nilai awal yang tidak dapat Anda bandingkan (karena itu mungkin nilai yang Anda sendiri telah masukkan ke dalam array), Anda harus melacak tempat mana di dalam larik yang sudah Anda tetapkan juga jika Anda tidak menetapkan secara berurutan mulai dari 0
(dalam hal ini semua tempat yang lebih kecil daricountItemsInArray
akan ditetapkan).)
Dalam pertanyaan Anda, ukuran larik (panjang / jumlah item) tergantung pada apakah / dimaksudkan untuk mewakili "alternatif" atau "bagi dengan" yang terakhir masih harus dicakup ("jumlah item" yang baru saja saya berikan sebagai " jumlah item "dan lainnya yang diberikan .Length
sesuai dengan nilainumber
dalam kode saya di atas):
C # memiliki sizeof
operator ( https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/sizeof ). Aman digunakan untuk tipe bawaan (seperti int) (dan hanya beroperasi pada tipe (bukan variabel)). Dengan demikian ukuran array b
tipe int
dalam byte akan menjadi b.Length * sizeof(int)
.
(Karena semua ruang larik telah dialokasikan saat pembuatan, seperti yang disebutkan di atas, dan sizeof
hanya bekerja pada jenis, tidak ada kode yang sizeof(variable)/sizeof(type)
berfungsi atau menghasilkan jumlah item tanpa pelacakan.)