c# - 根据 IEnumerable<string> 过滤 IEnumerable<T>

标签 c# linq entity-framework lambda

我有一个对象 Style拥有属性(property)StockNumber .我想过滤所有 Db.Styles 的列表针对 IEnumerable<string> stockNumbers用户输入搜索。 DB.Styles是一个 IEnumerable<Style> .这基本上是我正在尝试做的事情:

public IEnumerable<Style> LoadListOfStyles(IEnumerable<string> stockNumbers)
{
    return Db.Styles.Intersect(stockNumbers);
    // Need to filter Db.Styles based on stockNumbers
}

那么有没有一种简单的方法来比较Db.Styles中所有样式的列表?针对我在 stockNumbers 中的搜索值返回仅包含 Styles 的筛选列表用户搜索过?我看到能够做到这一点的唯一方法是让 2 个 IEnumerable 对象相交,但是从搜索到的库存编号中一个一个地加载样式似乎有很多不必要的代码。我想知道是否有更简单的方法。还是我需要使用自己的方法来过滤结果?

最佳答案

return db.Styles.Where(style => stockNumbers.Any(sn => sn == style.StockNumber));

关于c# - 根据 IEnumerable<string> 过滤 IEnumerable<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24783277/

相关文章:

c# - 处理 WPF 菜单 HeaderStringFormat 和访问键等

c# - Linq(groupBy?)问题

c# - entityframework 已经有一个与此命令关联的打开的 DataReader,必须先将其关闭

c# - Asp.Net Azure Cloud - 获取文件大小需要很长时间

c# - 如何从 Blazor 服务器端应用程序中的本地 Active Directory 实现身份验证?

c# - 在 LINQ 中获取子实体满足某些条件的项目

c# - 如何在 C# 中使用谓词来避免和或条件

visual-studio-2010 - 查看在Visual Studio中为 Entity Framework “保存更改”命令生成的SQL?

c# - 如何重构模型以解决代码警告 : "CA2214" and "CA2227"?

c# - SevenZipSharp - 如何使用 C# 将多个目录压缩到一个文件中?