说我有这个对象数组:
var input = new object[]
{
"Hello",
123,
true,
"Hats",
12,34,
'!'
};
然后我想按类型分组,然后返回一个字典,其中类型为键,每种类型的出现次数为值。我该怎么做呢?我现在已经将数组放入字典了,但是从这里开始我对它的处理方式感到有点困惑。
答案 0 :(得分:5)
只需按Type
分组,然后使用ToDictionary
方法:
input.GroupBy(x => x.GetType()).ToDictionary(x => x.Key, x => x.Count());
通常,当您使用GroupBy
根据引用类型进行分组时,您需要在类型上覆盖Equals
和GetHashCode
方法,或者实现自定义比较器以获得预期行为。但幸运的是,Type
班级已经这样做了。所以这将按预期工作。