c# - Linq 查询根据一年的给定月份选择记录
问题描述
我正在编写 linq 查询,发现使用 linq 语法构建逻辑很困难。基本上我需要提取与 indexid 匹配的记录,并根据月份数组和年份字段中的月份过滤记录。如何在 linq 查询中检查月份数组
这是我正在尝试的,但不确定如何根据月份数组检查 x.PriceDate.Month
private Tuple<double?, double?> GetBenchMarkByYear(int year, int benchMark1, int[] months)
{
Tuple<double?, double?> benchMarkReturns;
double[] temp1 = null;
var benchMark1Returns = new double?[] { };
benchMark1Returns = GetViewService<MV_INDEX_PERFORMANCE>()
.Where(x => x.Mtd != null && x.IndexId == benchMark1 && x.PriceDate.Year == year && x.PriceDate.Month ).Select(x => x.Mtd)
.ToArray();
}
}
解决方案
您可以简单地使用该Any()
方法。
这意味着您的情况如下:
benchMark1Returns = GetViewService<MV_INDEX_PERFORMANCE>()
.Where(x => x.Mtd != null && x.IndexId == benchMark1 && x.PriceDate.Year == year && months.Any(m=> m == x.PriceDate.Month))
.Select(x => x.Mtd)
.ToArray();
如果实体x.PriceDate.Month当然是int类型,因为月份是整数数组。
推荐阅读
- android - 使用并行协程工作程序运行 MediaMetadataRetriever getFrameAtIndex() 比使用一个协程运行慢
- python - 一旦到达列表的末尾,就回到开头,python
- wordpress - 用户单击时更改 wordpress 或 wix 中的图库图像
- c# - C# - 获取以元组作为输出的方法,但多次执行相同的参数?
- javascript - 从计算返回数据到嵌套字段
- android - AOSP 使用 jni 库构建应用程序
- python - 如何创建点将沿椭圆线移动的动画?
- .net-core - 使用事件时 Blazor 状态未在子组件之间更新
- vue.js - 安全共享使用不同图形框架 vuetify/quasar 构建的 npm 组件
- google-analytics - 使用 Google Analytics 的全局站点代码 (gtag.js) 测量滚动深度