Một trong các cấu trúc dữ liệu trong dự án hiện tại của tôi yêu cầu tôi lưu trữ danh sách các loại khác nhau (Chuỗi, int, phao, v.v ...). Tôi cần có khả năng lưu trữ động bất kỳ số lượng danh sách nào mà không biết chúng sẽ là loại nào.Danh sách các loại khác nhau
Tôi đã cố gắng lưu trữ từng danh sách dưới dạng object
, nhưng tôi gặp sự cố khi cố gắng truyền lại thành loại thích hợp (nó tiếp tục nhận ra mọi thứ dưới dạng List<String>
).
Ví dụ:
List<object> myLists = new List<object>();
public static void Main(string args[])
{
// Create some lists...
// Populate the lists...
// Add the lists to myLists...
for (int i = 0; i < myLists.Count; i++)
{
Console.WriteLine("{0} elements in list {1}", GetNumElements(i), i);
}
}
public int GetNumElements(int index)
{
object o = myLists[index];
if (o is List<int>)
return (o as List<int>).Count;
if (o is List<String>) // <-- Always true!?
return (o as List<String>).Count; // <-- Returning 0 for non-String Lists
return -1;
}
Am tôi làm điều gì sai? Có cách nào tốt hơn để lưu trữ một danh sách các danh sách các loại khác nhau hoặc có cách nào tốt hơn để xác định xem có gì đó là danh sách của một loại nhất định không?
Bạn có thể đăng chương trình tối thiểu nhưng hoàn chỉnh để chứng minh sự cố của bạn không? – dtb