c# - LINQ语句,检查是否剩余元素
问题描述
我们是 LINQ 的新手,我们想知道是否有任何方法可以检查句子中是否还有元素,例如 Java 中的 ResultSet.next()。
在 Java 中,如果有剩余元素,则 resultSet 返回 true,否则返回 false。我们想知道 LINQ 中是否有类似的方法。
public List<Product> FindProductsByKeyword(string productName, Category category, int page, int size)
{
DbSet<Product> products = Context.Set<Product>();
List<Product> result;
if (category == null)
{
result = (from p in products
where p.productName.Contains(productName) //, StringComparison.OrdinalIgnoreCase)
orderby p.productName descending
select p).Skip(page).Take(size).Include("Category").ToList();
}
else
{
result = (from p in products
where p.productName.Contains(productName)
&& p.categoryId == category.id
orderby p.productName descending
select p).Skip(page).Take(size).ToList();
}
return result;
}
这是我们的代码(我不知道这是否会有所帮助)我们采用具有多个 Size 的元素,但我们不知道是否还有更多元素。
解决方案
使用终止方法ToList()
启动数据库查询并将返回的表解析为简单的内存中List<T>
(与 Java 中相同ArrayList<T>
)。
如果要检查结果中是否有任何条目,只需检查列表的Count
属性:
if (result.Count > 0)
{
// Do something
}
或者使用 LINQ 的Any()
扩展方法,在这种情况下更具可读性:
if (result.Any())
{
// Do something
}
推荐阅读
- sql - 使用 pivot 将行更改为列以使用 sql 对数据进行排序
- c++ - 我如何在贝尔曼福德算法中输入图形?
- spring-boot - Grafana 中的操作单元
- string - 在 Hive/Presto 中将文件路径拆分为其组成路径
- c# - ABP 上的应用服务 URL 映射
- django - Django:从 date_of_birth 注释年龄
- python - Discord.py 立即调用任务
- javascript - 动态 routeLink 无法显示 URL
- pine-script - 松脚本重复信号问题
- ios - 有没有办法创建一个包含 Arm 和 x86 代码的预编译库,并且可以被 macOS、iOS 和 iOS 模拟器调用?