我当前项目中的一个数据结构需要存储各种类型的列表(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