gpt4 book ai didi

c# - 字符串比较问题

转载 作者:太空宇宙 更新时间:2023-11-03 23:32:54 28 4
gpt4 key购买 nike

首先让我说我已经阅读了我的问题,特别是 this questionthis one also .但是,我的问题有点不同。我了解不同方法之间的差异,但终生无法让我的代码正确运行。

在我的部分代码中,我有下面的比较。但是比较总是失败,并打印出“Type is:leg”。

if (String.Compare(timer.Type,"leg",true) == 0)
{
timer.StopTime = DateTime.Now;
// TODO Log into database here
toRemove.Add(timer);
}
//Couple more conditions in here...
else
{
Console.WriteLine("Attempting to remove cycle timer of invalid type");
Console.WriteLine("Type is:" + timer.Type);
//TODO: Log error
}

我也尝试过其他方法,但似乎都不适合我。

if(timer.Type == "leg" || timer.Type == "Leg") //Fails

if(time.Type.Equals("leg") || timer.Type == "Leg") //Fails

String type = timer.Typer; //Worth a shot...
if(type == "leg" || type == "Leg") //No luck

编辑:已请求更多代码,因此这里是整个方法。

private void stopFinishedTimers(AGVData agv)
{
List<CycleTimer> toRemove = new List<CycleTimer>();

foreach (CycleTimer timer in AllRunningCycleTimers)
{
if (agv.CurrentRFIDNumber == timer.CycleStopRfid)
{
if (String.Compare(timer.Type,"leg",true) == 0)
{
timer.StopTime = DateTime.Now;
// TODO Log into database here
toRemove.Add(timer);
}
else if (timer.Type.Equals("route") || timer.Type.Equals("Route"))
{
timer.StopTime = DateTime.Now;
// TODO Log into database here
toRemove.Add(timer);
}
else
{
Console.WriteLine("Attempting to remove cycle timer of invalid type");
Console.WriteLine("Type is:" + timer.Type);
//TODO: Log error
}
}
}

其中 CycleTimers 是一个包含称为类型的字段的类,可通过属性访问。

最佳答案

我会加上我的两分钱:

String type = timer.Typer 似乎是错误的,因为在您的大多数示例中,属性名称是 Type。另外 if(time.Type.Equals("leg") || timer.Type == "Leg") 似乎很可疑,因为您引用的是 timetimer 而不是两次相同的变量。

最后,由于区域性信息和字符集差异等原因,在 .Net 中比较字符串时,我总是总是使用StringComparison.Ordinal。我不确定这是否是个问题,但请参阅 this获取更多信息。

编辑:

附带说明,StringComparison.OrdinalIgnoreCase 也是一个选项。

关于c# - 字符串比较问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31524923/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com