Csharp/C#教程:检查LINQ查询的结果是否包含值分享


检查LINQ查询的结果是否包含值

我有一个LINQ查询,它从一个名为Permissions的表中返回所有记录,其中userId是当前用户。

我想要做的是对此结果集进行检查,看看是否存在值为5的PermissionId。

这是最简单的方法吗?

var PermissionIDFiveCount=YourInitialDataset.Where(p=>p.PermissionID==5).Count() 

或更短的方式:

 var PermissionIDFiveCount=YourInitialDataset.Count(p=>p.PermissionID==5) 

更短:

 var ContainsPermissionIDFive=YourInitialDataset.Any(p=>p.PermissionID==5) 

 bool contains_id_5; contains_id_5 = Permissions.Where(p=>p.PermissionID==5).Count() > 0; contains_id_5 = Permissions.Where(p=>p.PermissionID==5).Any(); contains_id_5 = Permissions.Where(p=>p.PermissionID==5).FirstOrDefault() != null; contains_id_5 = Permissions.Any(p=>p.PermissionID==5); 

您使用哪一个取决于您是否对中间位(计数,记录)有任何用处。 Permissions.Any(p=>p.PermissionID==5)可以是Queryable类型LINQ集合中最有效的,特别是作为更大查询的一部分,因为如果你不使用任何一个,它可以变成SQL EXISTS调用其他位。

如果您要返回IQueryable,只需查询结果即可。

 var results = repository.GetAllPermissions(id); var result2 = from r in results where r.PermissionID == 5 select r; bool contains5 = result2.Count() > 0; 

或者你可以这样做:

 var contains5 = repository.GetAllPermissions(id).Count(c => c.PermissionID == 5) > 0; 

更高级的方法可以通过修改Random832的代码如下。

上述就是C#学习教程:检查LINQ查询的结果是否包含值分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 bool contains_id_5; contains_id_5 = Permissions.Count(p=>p.PermissionID==5) > 0; contains_id_5 = Permissions.Any(p=>p.PermissionID==5); contains_id_5 = Permissions.FirstOrDefault(p=>p.PermissionID==5) != null; 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1004806.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐