确定异构容器容器中每种类型的元素数

时间:2009-03-04 23:29:33

标签: c# .net

我使用Dictionary作为异构容器:

Dictionary<string, Object> _Table;

它基本上将一些描述映射到int / double / string / ISerialiazable / etc类型。

我想有效地计算每种类型的元素数量,然后只打印该类型的元素 - 在SQL中,我将按类型分组,然后分别打印计数和每种类型的所有元素。

我没有使用LINQ,因为我需要在.net 2.0中支持它。我非常鼓励类似linq的解决方案用于教育目的,但请记住我只会使用与.NET 2.0兼容的代码

我目前有一个解决方法,我为每种类型使用词典,然后迭代所有词典。

...谢谢

1 个答案:

答案 0 :(得分:2)

编辑:您也想打印对象:

Dictionary<Type, List<object>> numTypes = new Dictionary<Type, List<object>>();

foreach(KeyValuePair<string, object> pair in _Table){
    Type type = object.GetType();
    if (!numTypes.ContainsKey(type)){
        numTypes[type] = new List<object>();
     }

        numTypes[type].Add(object);
}