我有一个项目查询,我需要通过他们的键来提取确切项目的列表。例如 - 项目[3],项目[5]和项目[10]。 我有这个功能:
public List<Item> GetItems<Item>(List<int> keys)
{
IQueryable<Item> itemsQuery = GetItemsQuery();
List<Item> items = new List<Item>();
foreach (int key in keys)
{
Item item = itemsQuery.SingleOrDefault(x => x.Key == key);
if (item != null)
{
items.Add(item);
}
}
return items;
}
现在,我希望此函数将返回IQueryable<Item>
而不是List。是否可以使用LINQ获取这些项并获得IQueryable
对象?
答案 0 :(得分:3)
您的方法可以简化为
removeChild
或
public IQueryable<Item> GetItems<Item>(List<int> keys)
{
IQueryable<Item> itemsQuery = GetItemsQuery();
return itemsQuery.Where(x => keys.Any(y => x.Key == y)).AsQueryable();
}