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

如何在LINQ的Where条件中使用IN?是否应使用Contains?

LINQ实现SQL IN功能的正确方式

没错,LINQ里实现SQL的IN逻辑,就是用Contains方法——你写的代码里直接写IN是错误的,C#没有这个语法。

正确的写法分两步:

  1. 先定义要匹配的目标值集合:
var targetDuties = new List<int> { 1, 3, 29, 206 };
  1. 在LINQ查询中用Contains替代IN:
var updateLaqTasks = dbContext.Tasks.SingleOrDefault(
    p => p.Room == roomId && targetDuties.Contains(p.Duty)
);

补充说明

  • 如果你用的是Entity Framework这类ORM,这段LINQ会被自动翻译成SQL的IN子句,和你给出的SQL示例逻辑完全一致:
    SELECT * FROM laqTasks t WHERE t.Room = @roomId AND t.Duty IN (1,3,29,206)
    
  • 要注意集合的类型必须和p.Duty的类型一致(比如这里都是int),不然会出现类型不匹配的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:13:11