Apakah ada metode untuk membuat array dinamis di C #?
Apakah ada metode untuk membuat array dinamis di C #?
Jawaban:
Lihat Daftar Umum .
dynamic[] msdn.microsoft.com/en-GB/library/dd264736.aspx (array tipe dinamis) atau ExpandoObject msdn.microsoft.com/ id-us / library /… Saya bisa -1 jawaban karena tidak menyebutkan ini
Memperluas jawaban Chris dan Migol dengan contoh kode.
Menggunakan array
Student[] array = new Student[2];
array[0] = new Student("bob");
array[1] = new Student("joe");
Menggunakan daftar umum. Di balik terpal, kelas List <T> menggunakan larik untuk penyimpanan tetapi melakukannya dengan cara yang memungkinkannya berkembang secara efisien.
List<Student> list = new List<Student>();
list.Add(new Student("bob"));
list.Add(new Student("joe"));
Student joe = list[1];
Terkadang array biasa lebih disukai daripada Daftar Generik, karena lebih nyaman (Performa yang lebih baik untuk komputasi yang mahal - Aplikasi Aljabar Angka misalnya, atau untuk bertukar Data dengan perangkat lunak Statistik seperti R atau Matlab)
Dalam hal ini Anda dapat menggunakan metode ToArray () setelah memulai Daftar Anda secara dinamis
List<string> list = new List<string>();
list.Add("one");
list.Add("two");
list.Add("three");
string[] array = list.ToArray();
Tentu saja, ini masuk akal hanya jika ukuran array tidak pernah diketahui atau diperbaiki ex-ante . jika Anda sudah mengetahui ukuran array Anda di beberapa titik program , lebih baik untuk memulainya sebagai array dengan panjang tetap. (Jika Anda mengambil data dari ResultSet misalnya, Anda bisa menghitung ukurannya dan memulai array dengan ukuran itu, secara dinamis)
Contoh Dynamic Array:
Console.WriteLine("Define Array Size? ");
int number = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter numbers:\n");
int[] arr = new int[number];
for (int i = 0; i < number; i++)
{
arr[i] = Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i < arr.Length; i++ )
{
Console.WriteLine("Array Index: "+i + " AND Array Item: " + arr[i].ToString());
}
Console.ReadKey();
Gunakan daftar array yang sebenarnya mengimplementasikan array. Awalnya dibutuhkan array berukuran 4 dan ketika sudah penuh, array baru dibuat dengan ukuran ganda dan data dari array pertama disalin ke array kedua, sekarang item baru dimasukkan ke dalam array baru. Juga nama larik kedua membuat alias dari yang pertama sehingga dapat diakses dengan nama yang sama seperti sebelumnya dan larik pertama dibuang
Jawaban ini sepertinya adalah jawaban yang Anda cari Mengapa saya tidak bisa melakukan ini: dynamic x = new ExpandoObject {Foo = 12, Bar = "duabelas"}
Baca tentang di ExpandoObjectsini https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspx
Dan dynamicketik di sini https://msdn.microsoft.com/en-GB/library/dd264736.aspx