c# - LINQ 在列表中查找所有具有 id 的内容

标签 c# linq

我正在尝试找出非查询方式来返回所有对象的列表(如果它们的 ID 在测试列表中)。示例如下:

Hero - table
Columns: id = INT , name = STRING, age = INT, power = INT;

var testList = {1,2,3};
var secondArray = {};

foreach (var id in testList )
{
    // check if ID in database
    var item = db.Hero.ToList().Find(o => o.Id = id);
    if( item != null)
    {
       secondArray.push(item);
    }
}

现在我已经看到这整个事情是在一行中完成的,但不记得它是如何完成的。

我追求的结果是包含 ID 为 1、2、3 的所有对象的列表。

最佳答案

你必须在 testList 上使用 Contains:

var secondArray= db.Hero.Where (h=> testList.Contains(h.Id))

关于c# - LINQ 在列表中查找所有具有 id 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43570086/

相关文章:

c# - 生成随机获取的 N 长度不同 ID 数组的最简单 Linq 查询是什么?

c# - 如何使 DockPanel 中的项目扩展以适应 WPF 中的所有可用空间?

c# - Javascript/.NET 正则表达式

c# - 有没有办法检查数据库中是否存在随机生成的数字? C#

c# - 具有动态属性名称的 Linq 选择器

linq - 带有 Select 的 Task.WhenAll 是一把枪——但为什么呢?

c# - 当超时时,我们如何避免多个 Rebus 消息?

c# - 多页 tiff 程序空白页

c# - Linq 到 XML : Queries for If blocks C#

sql - 使用Linq to SQL进行多线程