You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LINQ的Any子句中强制转换枚举为int进行比较?

问题解答

你的代码无法正常工作的核心原因是把比较运算符==写成了赋值运算符=,和枚举的强制转换本身无关。

正确的显式转换int写法:

if(myClassList.Any(x => (int)x.Profession == (int)XyzEnum.SpecificProfession))
{
    // 你的业务逻辑代码
}

补充说明:

在C#里,枚举类型直接用==比较时,默认就是对比它们底层的整数数值。如果你的XyzEnum没有特殊自定义逻辑(比如标记[Flags]特性、重写相等方法),下面的写法效果完全一致,还更简洁:

if(myClassList.Any(x => x.Profession == XyzEnum.SpecificProfession))
{
    // 你的业务逻辑代码
}

内容的提问来源于stack exchange,提问作者user2645738

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:17:10