根据整数ID列表从集合中获取记录

时间:2014-10-04 22:44:45

标签: linq

我有一个整数列表:ids。还有一个来自sql表的集合IdNames。对于ids中的每个整数,我想在IdNames中找到匹配的ID。然后,对于IdNames中具有匹配ID的每条记录,我要选择NameDisplayName列以及id中的值。

所以这是表IdNames

Id   |     Name    |  DisplayName
--------------------------------
1    |   fistName  | firstDisplayName
2    |  secondName | secondDisplayName
3    |  thirdName  | thirdDisplayName

如果ids包含整数2和3,我希望返回此集合

 Id   |     Name    |  DisplayName
--------------------------------  
 2    |  secondName | secondDisplayName
 3    |  thirdName  | thirdDisplayName

我如何将其写为linq查询?

我盯着这样写:IdNames.Select(x => x.Id == ids.Any()),但显然它不对。

2 个答案:

答案 0 :(得分:1)

var idNames = from idName in DataContext.IdNames
              where ids.Contains(idName.Id)
              select idName;

够好吗?

答案 1 :(得分:1)

在Linq-To-Objects中使用Join"我有一个整数列表:ids。还有集合,IdNames和#34; ):

var query = from id in ids
            join idName in IdNames
            on id equals idName.Id
            select idName;

Why is LINQ JOIN so much faster than linking with WHERE?