Tôi cần truy xuất tất cả các enums được tải từ một tập hợp các tập hợp nhất định.Làm cách nào để có danh sách tất cả các loại được nạp trong C#?
Trả lời
List<Type> list = new List<Type>();
foreach (Assembly ass in AppDomain.CurrentDomain.GetAssemblies())
{
foreach (Type t in ass.GetExportedTypes())
{
if (t.IsEnum)
{
list.Add(t);
}
}
}
Điều đó sẽ làm, cho tất cả các assembly được nạp bởi AppDomain hiện nay, để có được chỉ từ hội xác định, chỉ cần điều chỉnh ;-)
Phần hài hước (theo phiên âm): "chỉ cần điều chỉnh" :) –
Giả sử bạn đã danh sách các Assembly
đối tượng bạn muốn kiểm tra:
IEnumerable<Assembly> assemblies; // assign the assemblies you want to check here
foreach (Assembly a in assemblies) {
foreach (Type t in assembly.GetTypes()) {
if (t.IsEnum) {
// found an enum! Do whatever...
}
}
}
Bạn sẽ có thể sử dụng Assembly.GetTypes()
để có được tất cả các loại để lắp ráp các. Đối với mỗi loại, bạn có thể sử dụng thuộc tính Type.IsEnum
để xem đó có phải là enum hay không.
Bạn cũng có thể sử dụng LINQ để trả về một danh sách tất cả các loại enum từ một danh sách các hội đồng.
IEnumerable<Assembly> assemblies;
// give assemblies some value
var enums = from assembly in assemblies let types = assembly.GetTypes() from type in types where type.IsEnum select type;
enums
sẽ thuộc loại IEnumerable.
Dưới đây là một giải pháp thiết thực hơn:
AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(a => a.GetTypes())
.Where(t => t.IsEnum)
- 1. Làm cách nào để có danh sách tất cả các assembly hiện đang được nạp?
- 2. Làm cách nào để có được tất cả các phân vùng của danh sách trong Mathematica?
- 3. Làm cách nào để kiểm tra xem tất cả các mục trong danh sách có trong danh sách khác không?
- 4. Làm cách nào để tìm tất cả các phần tử có thể có trong danh sách?
- 5. Android, làm cách nào để có danh sách tất cả các tệp trong một thư mục?
- 6. Làm cách nào để có được tất cả danh sách phạm vi trong ActiveRecord 3.x
- 7. Làm thế nào để loại bỏ tất cả các chuỗi thoát khỏi danh sách các chuỗi?
- 8. Làm cách nào để có danh sách tất cả các lệnh shell hiện có
- 9. Làm cách nào để lấy danh sách và tạo tất cả các danh sách có độ dài ngày càng tăng?
- 10. Làm cách nào để hợp nhất tất cả các thành phần của danh sách trong R?
- 11. Làm cách nào để có danh sách tất cả các biến được xác định trong Matlab hoặc Octave?
- 12. Làm cách nào để có danh sách tất cả tên tệp trong thư mục bằng VB6?
- 13. Làm cách nào để hiển thị tất cả các phần tử trong danh sách mảng?
- 14. Làm cách nào để liệt kê tất cả các cụm được nạp?
- 15. Cách nhận tất cả các mục khác trong danh sách
- 16. Làm thế nào để có được danh sách tất cả các cửa sổ xử lý trong Java (Sử dụng JNA)?
- 17. Lấy danh sách tất cả các trình nạp lớp trong một JVM
- 18. Tôi làm cách nào để có được bộ sưu tập tất cả các màu trong System.Drawing.Color?
- 19. Làm thế nào để có được tất cả các liên kết của một danh sách bên trong một div?
- 20. Làm cách nào để có được danh sách tất cả "Bộ thay đổi" của người dùng trong TFS?
- 21. Làm thế nào để có được một danh sách tắt tất cả các phiên máy chủ trong laravel?
- 22. Làm thế nào để có được danh sách tất cả các quỹ tương hỗ của Yahoo Finance trong R?
- 23. Làm thế nào để có được danh sách tất cả các quan điểm vật chất trong oracle
- 24. android dexclassloader lấy danh sách tất cả các lớp
- 25. Danh sách tất cả các lớp miền trong Grails
- 26. Làm thế nào để thu được tất cả các giá trị từ một danh sách theo cách thủ công?
- 27. Cách lấy danh sách tất cả các tên miền trong Active Directory bằng C#
- 28. Danh sách các mô-đun node.js hiện đang được nạp?
- 29. Cách kiểm tra xem tất cả các mục sau có nằm trong danh sách không?
- 30. Làm cách nào để có được tất cả các phông chữ có chiều rộng cố định được cài đặt?
không "đã được nạp" nghĩa là gì? Bạn có thể đưa ra ví dụ về loại không được tải so với loại được tải không? –