如何在 linq 中编写 contains 语句?
How do I write a contains statement in linq?
我想 select 记录任何 selected 字段为 1 的记录。
decimal myNumber = 1;
query = from q in query where myNumber.Contains(q.trial, q.score, q.id) select q;
在sql我会写
select trial, score, id
from query q
where 1 in (q.trial, q.score, q.id)
如何使用 linq 复制 sql?
您可以使用 array
并使用 Contains
方法,例如:
var query = from q in query
where new[]{q.trial, q.score, q.id}.Contains(myNumber)
select q;
相反,当您有很多值并且需要与单个列进行比较时,您可以这样做:
var myValues = new[] {1, 2, 3, 4, 5};
var query = from q in query
where myValues.Contains(q.trial)
select q;
详细阐述@Felipe 的 post:
var found = from q in query
let arr = new []{ q.trial, q.score, q.id}
where arr.Contains(1)
select q;
编辑: 看起来@Felipe 更新了他的 post 以使用动态创建的数组。我将保留我的 post 来演示 LINQ 查询 (let
) 中变量的用法。这对于偶尔的情况很有用。
我想 select 记录任何 selected 字段为 1 的记录。
decimal myNumber = 1;
query = from q in query where myNumber.Contains(q.trial, q.score, q.id) select q;
在sql我会写
select trial, score, id
from query q
where 1 in (q.trial, q.score, q.id)
如何使用 linq 复制 sql?
您可以使用 array
并使用 Contains
方法,例如:
var query = from q in query
where new[]{q.trial, q.score, q.id}.Contains(myNumber)
select q;
相反,当您有很多值并且需要与单个列进行比较时,您可以这样做:
var myValues = new[] {1, 2, 3, 4, 5};
var query = from q in query
where myValues.Contains(q.trial)
select q;
详细阐述@Felipe 的 post:
var found = from q in query
let arr = new []{ q.trial, q.score, q.id}
where arr.Contains(1)
select q;
编辑: 看起来@Felipe 更新了他的 post 以使用动态创建的数组。我将保留我的 post 来演示 LINQ 查询 (let
) 中变量的用法。这对于偶尔的情况很有用。