按字典中的类型对数组进行分组

时间:2014-12-20 10:08:41

标签: c# dictionary

说我有这个对象数组:

        var input = new object[]
        { 
            "Hello",
            123,                
            true,
            "Hats",
            12,34,
            '!'
        };

然后我想按类型分组,然后返回一个字典,其中类型为键,每种类型的出现次数为值。我该怎么做呢?我现在已经将数组放入字典了,但是从这里开始我对它的处理方式感到有点困惑。

1 个答案:

答案 0 :(得分:5)

只需按Type分组,然后使用ToDictionary方法:

input.GroupBy(x => x.GetType()).ToDictionary(x => x.Key, x => x.Count());

通常,当您使用GroupBy根据引用类型进行分组时,您需要在类型上覆盖EqualsGetHashCode方法,或者实现自定义比较器以获得预期行为。但幸运的是,Type班级已经这样做了。所以这将按预期工作。