我當前項目中的一個數據結構需要存儲各種類型的列表(String,int,float等)。我需要能夠動態地存儲任意數量的列表,而不必知道它們將是什麼類型。不同類型的列表列表
我試圖存儲每個列表爲object
,但我跑進嘗試投放回相應的類型問題(它一直承認一切作爲List<String>
)。
例如:
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;
}
我在做什麼錯誤?有沒有更好的方法來存儲各種類型的列表清單,還是有更好的方法來確定某些東西是否是某種類型的清單?
你可以發佈一個簡單但完整的程序來演示你的問題嗎? – dtb 2010-03-19 20:18:19