将linq查询语法转换为包含where的方法语法

时间:2012-10-03 19:57:06

标签: c# linq

我想将此查询语法转换为方法语法,愚蠢而又困惑

List<int> x = new List<int>();
// code to fill list
from ug in DataContext.UserGroups
where (
    from f in x
    select f    
).Contains(ug.ID)
select ug;

2 个答案:

答案 0 :(得分:2)

var results = DataContext.UserGroups.Where(ug => x.Contains(ug.ID)).Select(ug => ug.ID);

我认为这就是你想要的。您在问题中提供的代码并非100%完整。您是否只是想获取int列表中的UserGroups的ID?如果您只想匹配UserGroups,请删除查询的.Select部分。

获取匹配的UserGroups

var results = DataContext.UserGroups.Where(ug => x.Contains(ug.ID));

答案 1 :(得分:2)

如果我正确地阅读了你的问题,这应该会给你你想要的结果:

DataContext.UserGroups.Where(ug => x.Contains(ug.Id))