Có phương pháp nào để tạo mảng động trong C# không?Mảng động trong C#
Trả lời
Hãy xem Generic Lists.
List<T>
cho kiểu được nhập mạnh hoặc ArrayList
nếu bạn có .NET 1.1 hoặc yêu thích để truyền biến.
+1 lời giải thích hay. –
Mở rộng câu trả lời của Chris và Migol bằng mẫu mã.
Sử dụng một mảng
Student[] array = new Student[2];
array[0] = new Student("bob");
array[1] = new Student("joe");
Sử dụng một danh sách chung. Dưới mui xe, lớp <T> sử dụng một mảng để lưu trữ nhưng thực hiện theo cách thức cho phép nó phát triển hiệu quả.
List<Student> list = new List<Student>();
list.Add(new Student("bob"));
list.Add(new Student("joe"));
Student joe = list[1];
ví dụ này là một nửa xấu, bởi vì cả hai chúng tôi đã nói về ArrayList – Migol
@Migol, nó cũng là một nửa tốt;) – JaredPar
Câu trả lời này tốt hơn của bạn @Migol, bởi vì điều này cho thấy làm thế nào để thực sự sử dụng Danh sách <> thay vì chỉ đề cập đến nó làm từ khóa. "half-bad" -> "half-good" -> tốt – fhugas
mảng Đôi khi đơn giản được ưa thích để Lists Generic, vì chúng là thuận tiện hơn (hiệu suất tốt hơn cho tính toán tốn kém -Numerical Đại số ứng dụng chẳng hạn, hoặc để trao đổi dữ liệu với phần mềm thống kê như R hoặc Matlab)
trong trường hợp này bạn có thể sử dụng phương thức ToArray() sau khi bắt đầu Danh sách của bạn tự động
List<string> list = new List<string>();
list.Add("one");
list.Add("two");
list.Add("three");
string[] array = list.ToArray();
Tất nhiên, điều này có ý nghĩa chỉ khi kích thước của mảng không bao giờ được biết đến cũng không cố định ex ante. nếu bạn đã biết kích thước của mảng tại một số điểm của chương trình thì tốt hơn nên khởi tạo mảng đó làm một mảng chiều dài cố định. (Nếu bạn lấy dữ liệu từ một ResultSet ví dụ, bạn có thể đếm kích thước của nó và bắt đầu một loạt các kích thước đó, động)
Kính trọng,
MJ
Không đáng, miễn là bạn đang sử dụng trình chỉ mục. – aaimnr
Arary không thuận tiện hơn (chúng cung cấp tập hợp con của giao diện Danh sách
Nếu bạn * có * để truyền một mảng tới một giao diện sau đó nó * phải * là một mảng. Tạo danh sách dễ dàng hơn nhiều và sau đó biến nó thành một mảng ngay trước khi bạn vượt qua nó. Tôi thích câu trả lời này nhiều hơn những người khác vì nó giải quyết câu hỏi! –
Sử dụng danh sách mảng mà thực sự là triển khai mảng. Nó lấy mảng ban đầu của kích thước 4 và khi nó được đầy đủ, một mảng mới được tạo ra với kích thước gấp đôi của nó và dữ liệu của mảng đầu tiên được sao chép vào mảng thứ hai, bây giờ mục mới được chèn vào mảng mới. Ngoài ra tên của mảng thứ hai tạo ra một bí danh của đầu tiên để nó có thể được truy cập bằng tên giống như trước và mảng đầu tiên bị xử lý
Câu trả lời này có vẻ là câu trả lời bạn đang tìm kiếm Why can't I do this: dynamic x = new ExpandoObject { Foo = 12, Bar = "twelve" }
Tìm hiểu về ExpandoObject
đây https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspx
Và dynamic
loại đây https://msdn.microsoft.com/en-GB/library/dd264736.aspx
động mảng Ví dụ:
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();
- 1. Tự động tạo một mảng trong C#
- 2. C mảng phát triển động
- 3. kích thước động C++ của mảng
- 4. C++ mảng năng động mà không STL
- 5. C++ mảng khởi động với tuyên bố
- 6. C++ Xóa một phần của mảng động
- 7. Tự động tạo một mảng Kiểu C#
- 8. Khởi tạo các mảng động C
- 9. Cách tạo mảng có kích thước động trong C?
- 10. Mảng động trong Stack?
- 11. sizeof char * mảng trong C/C++
- 12. C-như mảng trong perl
- 13. Mảng Sized Biến trong C
- 14. mảng byte hardcode trong C
- 15. Mảng động
- 16. Mảng chọn động trong PHP
- 17. Mảng kiểu Matlab trong C++
- 18. lọc một mảng trong C#
- 19. Xác định mảng trong C
- 20. C# mảng trong một struct
- 21. động cú pháp trong C#
- 22. Làm cách nào để "xem" mảng động C++ bằng gdb?
- 23. Tự động tính tổng trong mảng
- 24. Khởi tạo các mảng trong C++
- 25. Cú pháp thuộc tính mảng trong C#
- 26. Khai báo mảng C++ trong tiêu đề
- 27. Không thể tạo một mảng trong C#
- 28. Chuyển mảng byte thành chuỗi trong C#
- 29. Mảng lớp thực hiện trong C#
- 30. C++ xác định chỉ số mảng trong initializer, như C
+1 để đẩy anh ta hướng tới lớp sưu tập –
Câu hỏi (mặc dù ngắn và không mô tả) không hỏi về danh sách chung - Câu hỏi có thể hỏi về 'dynamic []' https://msdn.microsoft.com /en-GB/library/dd264736.aspx (mảng các loại động) hoặc 'ExpandoObject' https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspx Tôi có thể -1 câu trả lời cho không đề cập đến những –
@ LukeTO'Brien này, động lực đã được giới thiệu trong C# 4.0, được phát hành một năm sau khi câu hỏi này ban đầu được hỏi. OP có lẽ đã hỏi về cấu trúc dữ liệu có thể thay đổi lại như https://en.wikipedia.org/wiki/Dynamic_array –