LINQ语句中的Foreach,这是可能的吗?

本文关键字:语句 Foreach LINQ | 更新日期: 2023-09-27 18:12:04

我有一个整数列表。但是,我正在运行一个存储库来检索数据。我需要在整数列表中做一个where。我想知道我该怎么做,是否有可能。例如,我需要这样做:

join h in camOnlineDb.Headers
                       on new { d.ClientID, d.ClaimID }
                   equals new { h.ClientID, h.ClaimID }
                   where d.ClaimID == foreach(var item in IntList) {
                       d.ClaimId == item.ClaimID
                   }    

我知道语法不对,但如果是的话,我就不会在这里了!所以我想知道这是否可能,如果不可能,最好的解决办法是什么?

LINQ语句中的Foreach,这是可能的吗?

如果我正确理解了你的问题,你可以使用以下语法

join h in camOnlineDb.Headers
                   on new { d.ClientID, d.ClaimID }
               equals new { h.ClientID, h.ClaimID }
               where IntList.Select(x => x.ClaimID).Contains(d.ClaimID)

Try linq method All

join h in camOnlineDb.Headers
    on new { d.ClientID, d.ClaimID }
    equals new { h.ClientID, h.ClaimID }
where IntList.All(item => d.ClaimId == item.ClaimID) 

或任何:

join h in camOnlineDb.Headers
    on new { d.ClientID, d.ClaimID }
    equals new { h.ClientID, h.ClaimID }
where IntList.Any(item => d.ClaimId == item.ClaimID) 

所以,区别是当IntList的所有元素必须匹配d.ClaimId时使用All,如果您至少需要一个-使用Any