首页 > 解决方案 > 如何通过谓词计算枚举列表?

问题描述

我有一个清单:

var foos = new List<E_Foo>() { E_Foo.FooA, E_Foo.FooB , ... };

哪里E_Foo是:

public enum E_Foo
{
    Undefined = 0,
    FooA = 1,
    FooB = 2
}

我需要计算特定 Enum 值的出现次数,例如:

int fooACount = foos.Count(x => x.GetType() == E_Foo.FooA);

但它显示了以下编译器错误:

运算符“==”不能应用于“Type”和“E_Foo”类型的操作数

标签: c#linqenums

解决方案


您需要按值而不是按类型比较它们

foos.Count(x => x == E_Foo.FooA)

推荐阅读