c# - 检查列表中是否存在项目并将值推送到其中 - 一次性
问题描述
我想检查列表中是否存在项目,如果存在,则将其推入一个值。
所有这一切,都是为了避免在列表上运行两次。
因为如果我做这样的事情:
if (Params.Any(p => p.Name == "Phone"))
Params.Where(p => p.Name == "Phone").First().Value = phoneValue
我在名单上跑了两次。第一次在 中any
,第二次在 中where
。
所以实际上我想一次性完成以上两条线。
是否可以?
解决方案
你可以使用FirstOrDefault
如下:
var result = Params.FirstOrDefault(p => p.Name == "Phone");
然后检查该值是否不为空,然后设置属性:
if(result != null) result.Value = phoneValue;
这样您就不必在源上枚举两次。
推荐阅读
- windows - Windows Server 2019 上的 Robocopy 问题
- sql - 如果我删除用户 SQL,我可以删除用户的问题和答案吗
- python - 使用函数将英里转换为公里
- javascript - Gatsby 基于窗口位置的仅客户端路由页面的服务器端渲染
- python - 为什么更新优化器会产生不好的结果?
- php - Yii2 - 设置响应头在行动
- html - 当我在页面 HTML/CSS 上单击时丢失底部边框颜色
- python - 下载 Youtube 视频,使用 Pytube.Error url_encoded_fmt_stream_map
- emacs - 如何在 Emacs 的 Markdown 中更改斜体和引号的文本颜色?
- php - Laravel 重命名页面后显示空白页面