Razor页面@foreach多值匹配的正确语法咨询
修正Razor页面的多值过滤代码
修正后的完整代码
@foreach (var officerGroup in Model.Results .Where(i => new[] {"YO", "CRD", "PPI", "PSI"}.Contains(i.InvestType)) .GroupBy(x => x.ProbOfficer)) { // 编写你的分组渲染逻辑 }
关键说明
- C# 中没有类似 SQL 的
in运算符,要实现多值匹配,可通过创建目标值集合 + 调用Contains方法实现:先定义包含指定InvestType值的数组,再用Contains判断当前项的InvestType是否属于这个集合。 - 原代码存在括号不匹配问题,
Where方法的lambda表达式缺少闭合的),修正后已补全。 - 如果需要复用这个目标集合,可在页面顶部提前定义,提升代码可读性:
@{ // 提前定义目标InvestType集合,方便后续修改 var targetInvestTypes = new[] {"YO", "CRD", "PPI", "PSI"}; }
之后循环部分可简化为:
@foreach (var officerGroup in Model.Results .Where(i => targetInvestTypes.Contains(i.InvestType)) .GroupBy(x => x.ProbOfficer)) { // 编写你的分组渲染逻辑 }
内容的提问来源于stack exchange,提问作者MelB
相关产品推荐
相关产品推荐

