Позвольте мне сказать, что я прочитал свою проблему, в частности this question и this one also. Однако моя проблема немного другая. Я понимаю различия между различными методами, но не могу заставить мой код правильно работать для меня.Неполадки с сопоставлением строк
В части моего кода у меня есть сравнение ниже. Но сравнение всегда терпит неудачу, и распечатывается «Тип: нога».
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
EDIT: запрошено больше кода, так что вот весь метод.
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 - класс, содержащий поля типа типа, доступ к которым осуществляется через свойство.
Откуда взялся CycleTimer? это один из ваших собственных классов? Используете ли вы какую-то специальную структуру? – Bongo
@JShell Спасибо за ваше обновление. Тем не менее, определение 'CycleTimer' отсутствует. – BartoszKP
@JohnCarpenter 'StringComparison.Ordinal' исправил это, спасибо миллиону – JShell