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

Lef*_*ies 0 c# dictionary

假设我有这个对象数组:

        var input = new object[]
        { 
            "Hello",
            123,                
            true,
            "Hats",
            12,34,
            '!'
        };
Run Code Online (Sandbox Code Playgroud)

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

Sel*_*enç 5

简单分组Type,并使用ToDictionary方法:

input.GroupBy(x => x.GetType()).ToDictionary(x => x.Key, x => x.Count());
Run Code Online (Sandbox Code Playgroud)

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