首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >遍历Linq查询

遍历Linq查询
EN

Stack Overflow用户
提问于 2014-04-24 22:27:32
回答 2查看 114关注 0票数 0

我有一个linq查询,它从odata服务中提取数据,如下所示:

代码语言:javascript
复制
var Query = from t in results.People
   where t.Invalid == false && t.Id == 148
   select new
   {
    t.Name,
    t.Location
   }

我还有一个I为{148,149,150...}的字符串数组,我想用数组中的每个I替换上面的t.Id == 148表达式。

如果没有for循环,我不确定它的语法是如何进行的。有没有人能告诉我这是不是可能的?

EN

回答 2

Stack Overflow用户

发布于 2014-04-24 22:28:33

对于OData,您可以尝试:

代码语言:javascript
复制
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中具有匹配ids的所有行

对于LINQ to objects或LINQ to SQL/Entity框架,查询通常是:

代码语言:javascript
复制
var Query = from t in results.People
   where t.Invalid == false && ids.Contains(t.Id)
   select new
   {
    t.Name,
    t.Location
   };
票数 3
EN

Stack Overflow用户

发布于 2014-04-26 14:25:55

如果OData不支持contains,那又如何呢?

代码语言:javascript
复制
from t in results.People
where t.Invalid == false && ids.Any(id => id == t.Id)
select new
{
    t.Name,
    t.Location
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23271819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档