c# - c# 列表> Foreach 在一个班轮中
问题描述
我想要以下代码:
List<Tuple<string, double>> historicalDailyHigh = new List<Tuple<string, double>>();
foreach (var item in historicalDailyHigh)
{
if (item.Item1.Contains(closestPreDailyHigh.ToString()))
{
closestPreDailyHighName = item.Item1;
}
}
写在一行中,类似于这一行,只有“closestPreDailyHighName”应该是一个字符串:
closestPreDailyHighName = historicalDailyHigh.Any(x => x.Item1.Contains(closestPreDailyHigh.ToString()));
有人可以给我一个关于如何做到这一点的提示吗?
解决方案
从技术上讲,您的代码可以重写为
closestPreDailyHighName = historicalDailyHigh
.LastOrDefault(item => item.Item1.Contains(closestPreDailyHigh.ToString()))
?.Item1 ?? closestPreDailyHighName;
注意,你没有放在break
里面if
,这就是最后一个满足条件的项目将被分配。如果都不item
符合条件,我们不更改closestPreDailyHighName
.
如果省略break
是一个错字,你可以把
closestPreDailyHighName = historicalDailyHigh
.FirstOrDefault(item => item.Item1.Contains(closestPreDailyHigh.ToString()))
?.Item1 ?? closestPreDailyHighName;
如果保证始终存在,item
您可以更改FirstOrDefault
为First
:
closestPreDailyHighName = historicalDailyHigh
.First(item => item.Item1.Contains(closestPreDailyHigh.ToString()))
.Item1;
推荐阅读
- javascript - 在 javascript 中为 JWT 生成 JTI 声明
- elasticsearch - 尝试为 ELK 创建 S3 snaphost 存储库时出现 HTTP 503 错误
- excel - 尝试按日期排序,但组匹配字段
- callback - 粉底 6 粘性 FOUC
- angular - 5 秒后 Ng4LoadingSpinner 超时
- android-studio - 我在 Pallete (Android Studio 3.2) 中看不到 ImageSwitcher
- angular - 未捕获(承诺):错误:StaticInjectorError(AppModule)[AuthServiceProvider -> HttpHeaders]:
- php - 如何将 SUM() 结果转换为 JSON?
- php - 无法打开流:.env
- oracle - 关于 Oracle PL SQL 循环