使用 linq 加载除另一个集合之外的集合

2024-04-19

我有这样的搜索方法:

public List<Employeees> AutoSuggestEmployeee(string keyword,
    long employeeeTypeId, int count)
{
    return context.Employeees.Where(
        x => x.EmployeeeName.Contains(keyword)
        && x.EmployeeeTypeId == employeeeTypeId)
    .Take(count).ToList();
}

我有另一个 Employeees 集合,比如“BadEmployeees”,我想要的是使用与之前相同的方法返回除“BadEmployeees”之外的所有 Employeees。

我试着这样写:

return context.Employeees.Where(
        x => x.EmployeeeName.Contains(keyword)
        && x.EmployeeeTypeId == employeeeTypeId)
    .Except(BadEmployeees).Take(count).ToList();

但它给出了一个例外Except只能使用 Int、Guid 等数据类型...


The Except方法进行比较,因此它必须知道如何比较对象。对于简单类型,有标准比较,但对于复杂类型,您需要提供一个相等比较器来比较对象中的相关数据。

Example:

class EmployeeComparer : IEqualityComparer<Employeees> {

  public bool Equals(Employeees x, Employeees y) {
    return x.Id == y.Id;
  }

  public int GetHashCode(Employeees employee) {
    return employee.Id.GetHashCode();
  }

}

Usage:

return
  context.Employeees
  .Where(x => x.EmployeeeName.Contains(keyword) && x.EmployeeeTypeId == employeeeTypeId)
  .Except(BadEmployeees, new EmployeeComparer())
  .Take(count)
  .ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 linq 加载除另一个集合之外的集合 的相关文章

随机推荐

  • Tornado:使用 AsyncHTTPTestCase 测试多部分请求

    我正在编写一个使用多部分请求的用户上传文件的 API 我看到Tornado 4 5版本已经支持多部分请求 但在那之后 我想测试这个API 我的问题是 如何在 Tornado 上测试多部分请求 我在谷歌上搜索了很多参考资料 但找不到有用的资源
  • Android:如何将 Google+ 个人资料图片和封面照片放入导航抽屉中

    假设用户在手机上登录了 Google 帐户 如何将 Google 图片 圆形 和 Google 封面照片放入 Android 应用程序的导航抽屉中 有这方面的API吗 另外 如何将个人资料照片显示为圆形 我正在尝试实现与 Android I
  • 使用本地模块,使用本地依赖项[重复]

    这个问题在这里已经有答案了 我试图包含一个本地库 所以我遵循这两个教程 如何创建库 https www tsmean com articles how to write a typescript library 如何使用本地图书馆 http
  • 根据当前页面动态改变链接的CSS

    我的网页顶部有以下链接 ul class icyLink li a class nav1 href index html The World of Icengale a li li a class nav1 href history htm
  • 为什么我收到致命错误:未捕获的异常“GuzzleHttp\Exception\RequestException”,消息“cURL 错误 60”

    我正在用 laravel 做项目 我正在使用 plivo api 发送短信 为此 我遵循了以下提到的所有步骤 https www plivo com docs getting started send a single sms https
  • 使用 Button 和 Title Swift 以编程方式创建导航栏

    我尝试创建一个导航栏 到目前为止导航栏没有问题 但是当我尝试添加按钮和标题时 它们不会显示 我的导航栏看起来像 let NameHeight screenHeight 0 09 let NameWidth screenWidth let n
  • JSF 2 中的部分状态保存功能

    有人可以解释一下 JSF 中的部分状态保存功能吗 我曾使用过 JSF 1 2 但那里不存在此功能 我认为这是 JSF 2 0 的新内容 与常规国家储蓄相比 部分国家储蓄给我们带来什么好处 它通过保存对 bean 的修改来减少内存使用 默认为
  • 从 Visual C++ 调用 C# 代码

    基本上我需要从 Visual C 代码调用 C 代码 在阅读了大量有关可能方法的文章后 我决定使用 C CLI 机制 最初我决定在 C 本机代码 dll 库项目 中使用一些函数 它们将调用 CLR 项目中的一些函数 CLR 项目将调用 C
  • 为什么我们不能在 while 循环中定义变量?

    我们可以做的 using Stream s and for int i 为什么我们不能也做这样的事情 while int i NextNum gt 0 我发现它非常有用且明智 我不是语言设计师 但我会给出一个有根据的猜测 里面的子句whil
  • jQuery DatePicker 未加载

    我有一段 jQuery 由于某种原因根本无法加载 我想知道这是否是我的语法错误 或者我是否遗漏了一些对其工作至关重要的东西 这被放置在包含的页面上 div class demo p Date p div
  • Unity3D 与 UIView 集成

    如果这个问题重复 请纠正我 我刚刚接触到Unity3D 我只是想问是否可以将Unity3D集成到其他UIView之上 我认为这是不可能的 因为生成的 AppController mm 充当UIApplicationDelegate 即使你设
  • 如何将字符串转换为整数或浮点数

    我有一个文本字段 用户可以在其中输入数字 并且我希望能够根据用户输入将字符串转换为整数或浮点数 在 Ruby 中是否有一种简单的方法可以做到这一点 例如 User Input 123 gt Output 123 User Input 123
  • 在 MAMP 中使用 Laravel 设置 PostgreSQL

    我在我的 MAC 上使用 MAMP 因为它默认带有 MySQL 但现在我需要在我的一个项目中使用 PostgreSQL 如何在 Laravel 项目的 MAMP 中设置 postgreSQL 好吧 如果你决定使用 MAMP 附带的 post
  • Web应用的细粒度授权

    我有一个 C net 应用程序 为公司的内部用户和外部客户提供服务 我需要进行细粒度的授权 比如谁访问什么资源 因此 我需要基于资源或基于属性的授权 而不是基于角色的授权 我想到的是 为我的 net 应用程序实现我自己的授权机制和 SQL
  • 具有多列的 ORMLITE ORDER_BY

    我在用ormlite在我最近的android项目中 我想对表中多列 比如两列 的查询进行排序 我怎样才能做到这一点 这是单个订单的代码 QueryBuilder
  • 如何阻止 UIScrollView 水平弹跳?

    我有一个 UIScrollView 显示垂直数据 但水平部分不比 iPhone 的屏幕宽 问题是用户仍然可以水平拖动 并且基本上暴露了 UI 的空白部分 我尝试过设置 scrollView alwaysBounceHorizontal NO
  • 如何在设计时避免 XAML 代码中出现“对象引用未设置到对象实例”异常?

    我对我自己设计的 wpf 用户控件有问题 问题是我得到了object reference not set to an instance of an object当我在程序中实现用户控件时 设计时 XAML 代码中出现异常 设计师向我展示了以
  • Teradata:数据透视中的 IN 子句无法从表中获取数据

    我想提取一些Calender Weeks从年度数据来看 完成后 我想旋转它 以便每个都有一行ID 我们有一张桌子DB MY CWs只有一列CW含有Calender Weeks我们感兴趣 以下代码提取相关内容Calender Weeks CR
  • 文件系统树“任意深度的子文件夹”的 Get-ChildItem 通配符

    我想获取特定子文件夹内特定扩展名的所有文件 但可以位于文件系统内的任何级别 例如 Get ChildItem Source Release nupkg recurse 简单的星号可以工作 但会在 源 下的直接级别上进行搜索 但不会在树中进行
  • 使用 linq 加载除另一个集合之外的集合

    我有这样的搜索方法 public List