LINQ List查询另一个列表的内容

本文关键字:列表 另一个 List 查询 LINQ | 更新日期: 2023-09-27 18:11:11

我有List _locationData,它包含一个唯一标识符uid,这是一个字符串。我想使用LINQ查询来返回一个列表,该列表的uid包含在列表uid中。

  public IQueryable<Location> FindAll(List<string> uids)
    {
        return _locationData.AsQueryable().Where(z => z.uid.Any(v => uids.Equals(v)));
    }

LINQ List查询另一个列表的内容

你可以试试这个:

public IQueryable<Location> FindAll(List<string> uids)
{
    return _locationData.AsQueryable().Where(z => uids.Contains(z.uid));
}

检查位置数据中的每个元素是否包含在列表uids中。如果是,那么位置将包含在返回的结果中。

您想在列表中使用Contains:

return _locationData.AsQueryable().Where(z => uids.Contains(z.uid));

如果你不严格要求结果是可查询的,这只是为了方便linq从哪里返回,你可以这样做:

private List<Location> FindAll(List<string> uids)
{
    return _locationData.FindAll(location => uids.Contains(location.uid));
}

您也可以尝试这样的连接:

public IQueryable<Location> FindAll(List<string> uids)
{
    return _locationData.AsQueryable().Join(uids, l => l.uid.ToString(), s => s, (l, s) => l);
}