在Linq查询中循环
本文关键字:循环 查询 Linq | 更新日期: 2023-09-27 17:59:47
我有一个linq查询,它从odata服务中提取数据,如下所示:
var Query = from t in results.People
where t.Invalid == false && t.Id == 148
select new
{
t.Name,
t.Location
}
我还有一个Ids{148149150…}的字符串数组,我想用数组中的每个Ids替换上面的t.Id == 148
表达式。
我不确定它的语法如何,如果没有for循环也可能的话。如果可能的话,有人能告诉我吗?
对于OData,您可以尝试:
var Query = from t in results.People
from r in ids
where t.Invalid == false && t.Id = r
select new
{
t.Name,
t.Location
};
这将返回数组ids
中具有匹配ID的所有行
对于LINQ到对象或LINQ到SQL/实体框架,通常查询为:
var Query = from t in results.People
where t.Invalid == false && ids.Contains(t.Id)
select new
{
t.Name,
t.Location
};
如果OData不支持contains,那么Any呢?
from t in results.People
where t.Invalid == false && ids.Any(id => id == t.Id)
select new
{
t.Name,
t.Location
};