c# List<Tuple<string, double>> Foreach in one liner
c# List<Tuple<string, double>> Foreach in one liner
我想要以下代码:
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
中,这就是将分配满足条件的 last 项。如果 item
的 none 满足条件,我们不更改 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;
我的解决方案现在看起来像这样:
closestPreDailyHigh = historicalDailyHigh.Min(x => x.Item2);
closestPreDailyHighName = historicalDailyHigh.First(x => x.Item1.Contains(closestPreDailyHigh.ToString())).Item1;
感谢您的意见!
我想要以下代码:
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
中,这就是将分配满足条件的 last 项。如果 item
的 none 满足条件,我们不更改 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;
我的解决方案现在看起来像这样:
closestPreDailyHigh = historicalDailyHigh.Min(x => x.Item2);
closestPreDailyHighName = historicalDailyHigh.First(x => x.Item1.Contains(closestPreDailyHigh.ToString())).Item1;
感谢您的意见!