【问题标题】:linq where clause when id is in an array当 id 在数组中时的 linq where 子句
【发布时间】:2016-03-07 14:11:09
【问题描述】:

如果UserId 在数组中,我有一个方法应该返回用户列表。 UserIds 数组被传递给该方法。

我不确定如何在数组中写入 ..where 用户 ID?

低于in ids[] 显然是不正确的。

public List<User> GetUsers(int[] ids)
{
   return Users.Values.Where(u => u.UserID in ids[]).ToList();
}

任何想法如何纠正?

谢谢,

【问题讨论】:

  • 输入回复以看到有人已经发布了相同的内容并且已经有一些人已经投票的烦恼..所以我删除了它
  • @BugFinder 这是一个老问题,有自己的名字 (Fastest Gun in the West)。
  • 谢谢 :) 我只是讨厌看到 2 个答案相同,这毫无意义.. 即使两者都是正确的。
  • Where IN clause in LINQ的可能重复

标签: c# linq


【解决方案1】:

你可以试试这样的:

public List<User> GetUsers(int[] ids)
{
    return Users.Values.Where(u => ids.Contains(u.UserID)).ToList();
}

【讨论】:

    【解决方案2】:

    替代昆汀的回答,使用这个:

    public List<User> GetUsers(int[] ids)
    {
        return Users.Values.Where(u => ids.Any(x => x == u.UserID)).ToList();
    }
    

    【讨论】:

      猜你喜欢
      • 2010-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多