我试图通过比较两个字符串时间值来显示产品的statusFinal值。
问题是,StartTimeNames: 9:00到9:45,状态为空(statusFinal值未显示),statusFinal值从10:00显示到结束时间。
_vmModel.keyValuePairs是视图模型字典的一个对象,
_vmModel.ProductTypesSel是ProductType[]的数组,
_vmModel.StartTimeNames是string[]的数组
这个密码怎么了?请看图片。

任何帮助都是非常感谢的。谢谢!
Dictionary<int, List<KeyValuePair<string, string>>> keyValuePairs = _vmModel.keyValuePairs;foreach (var item in _vmModel.ProductTypesSel)
{
List<KeyValuePair<string, string>> temp = keyValuePairs[item.Code];
for (int i = 0; i < _vmModel.StartTimeNames.Length; i++)
{
string filterStartTimeNames = _vmModel.StartTimeNames[i];
string statusFinal = "";
foreach (KeyValuePair<string, string> timeValue in temp)
{
if (filterStartTimeNames == timeValue.Key)
{
statusFinal = timeValue.Value;
Console.WriteLine("LoopCheck Nested Locked Value: " + timeValue.Key);
}
else
{
Console.WriteLine("LoopCheck Nested Not Matched: " + timeValue.Key);
}
}
Label statuslabel = new Label() { Text = statusFinal, WidthRequest = 80 };
}
}发布于 2022-11-24 08:53:32
根据您的描述,代码中一定有一些逻辑错误。处理该问题的最简单、最直接的方法是调试,以找到哪些行代码具有您不想要的结果。
只需在foreach (var item in _vmModel.ProductTypesSel)添加一个断点即可。当循环开始时,一步一步地运行代码,每次检查变量的值。
通过检查每一行代码的结果是否与预期相同,您可以找到问题所在并解决它。
https://stackoverflow.com/questions/74556557
复制相似问题