作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想知道是否有一种方法可以使用 int 数组创建串联的 WHERE 子句。我需要获得整个数组的组合结果。我可以做类似的事情吗:
public ViewResult Results(int? programId, int? programYear, int? programTypeId, string toDate, string fromDate, int?[] programTypeIdList, int?[] programIdList)
{
surveyResponseRepository.Get().Any(x => x.ProgramId == programIdList);
}
最佳答案
使用Contains
:
surveyResponseRepository.Get().Any(x => programIdList.Contains(x.ProgramId));
虽然这会告诉您是否有任何结果符合该标准。
我怀疑您想使用 Where
而不是 Any
:
surveyResponseRepository.Get().Where(x => programIdList.Contains(x.ProgramId));
此外,为什么要使用可为空的 int
数组?如果您试图使参数成为可选参数,只需将其保留为常规 int
数组并检查是否为 null:
public ViewResult Results(int? programId, int? programYear, int? programTypeId, string toDate, string fromDate, int[] programTypeIdList, int[] programIdList)
{
return surveyResponseRepository.Get()
.Where(x => programIdList == NULL
|| programIdList.Contains(x.ProgramId));
}
关于c# - 带字符串数组的串联 Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12789837/
我是一名优秀的程序员,十分优秀!