热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#中保存If语句检索结果到变量

本文探讨如何在C#中将If语句中检索到的结果保存到一个变量中,以提高代码的可读性和可维护性。

我有一个条件判断,如下所示:

List sessiOns= new List();
foreach (var item in fileInfo)
{
var query = _db.HWSRunSessions
.Where(x => x.TransferredZipName == item.Name
&& DateTime.Now.Subtract(x.AddedDate).TotalDays >= _ExpirationDays);
if (!query.Any()) {
// 处理逻辑
}
}

但是,我希望将查询结果保存到 sessions 变量中,以便后续使用。一种常见且高效的方法是先将查询结果存储在一个临时变量中,然后再进行条件判断:

foreach (var item in fileInfo)
{
var session = _db.HWSRunSessions
.FirstOrDefault(x => x.TransferredZipName == item.Name
&& DateTime.Now.Subtract(x.AddedDate).TotalDays >= _ExpirationDays);
if (session == null)
{
// session is null, handle accordingly
}
else
{
// do something with session
sessions.Add(session);
}
}

这种方法不仅提高了代码的可读性,还便于调试和维护。

如果您确实需要在表达式中分配变量,可以采用以下方式,但请注意这会使代码更难阅读,并可能增加错误风险:

Session session = null;
if ((session = _db.HWSRunSessions
.FirstOrDefault(x => x.TransferredZipName == item.Name
&& DateTime.Now.Subtract(x.AddedDate).TotalDays >= _ExpirationDays)) == null)
{
// session is null, handle accordingly
}
else
{
// do something with session
}

需要注意的是,`Where` 方法总是返回一个非空的集合(即使没有匹配项),因此通常需要结合 `Any()` 或 `FirstOrDefault()` 等方法来确保正确处理。


推荐阅读
author-avatar
手机用户2602922511
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有