我有一个整数列表:ids
。还有一个来自sql表的集合IdNames
。对于ids
中的每个整数,我想在IdNames
中找到匹配的ID。然后,对于IdNames
中具有匹配ID的每条记录,我要选择Name
和DisplayName
列以及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())
,但显然它不对。
答案 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;