c# - 在 Linq 中不符合条件

标签 c# .net entity-framework linq

我有一个简单的场景。我想列出除登录用户之外的所有员工。

类似的SQL条件是

select * from employee where id not in(_loggedUserId) 

如何使用 LINQ 实现上述目标。我尝试了以下查询但未获得所需的列表

int _loggedUserId = Convert.ToInt32(Session["LoggedUserId"]);

List<int> _empIds = _cmn.GetEmployeeCenterWise(_loggedUserId)                              
                        .Select(e => e.Id)
                        .Except(_loggedUserId) 
                        .ToList();

最佳答案

Except期望类型为 IEnumerable<T> 的参数, 不是 T , 所以它应该是这样的

_empIds = _cmn.GetEmployeeCenterWise(_loggedUserId)                              
                           .Select(e => e.Id)
                           .Except(new[] {_loggedUserId}) 
                           .ToList();

另请注意,在排除列表仅包含一项并且可以替换为类似 .Where(x => x != _loggedUserId) 的情况下,这确实是多余的

关于c# - 在 Linq 中不符合条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34175687/

相关文章:

.net - "Official"将程序集部署到 GAC 的方法?

c# - C#aspnetCore否IEnumerable构造函数

c# - C#如何解析重载的构造函数: Foo(Exception) and Foo(object)?

c# - 创建简单数学公式的表达式

c# ef - 在一个公用表与其他三个或更多表之间创建一对零/一映射的最佳方法

c# - 使用 DI 和 UoW 模式时是否需要使用 EF 语句

c# - 静态方法和线程

c# - 我可以在不复制 C# 8 中的元素的情况下遍历结构数组吗?

c# - NHibernate QueryOver WithSubQuery WhereAll 子句

c# - 在 C# 中将参数传递给 DownloadStringCompletedEventHandler