Я пытаюсь присвоить индекс combobox, перейдя через значения и найдя ту, которая соответствует моей переменной диаметра. (элементы списка со списком изменяются в зависимости от диаметра, например, некоторые типы труб имеют только 0,5 ", 1,0", тогда как другие могут иметь промежуточное значение 0,75 ").C# для сравнения текста в цикле
Сравнение кода никогда не кажется правдой (поэтому myIndex никогда не назначается что находится за пределами инициализации), хотя, когда я ставлю точку останова на нем, текстовые строки совпадают на соответствующей итерации.
int myIndex = 0;
for (int i = 0; i <= cboDiameter.Items.Count-1; i++)
{
if (cboDiameter.GetItemText(cboDiameter.Items[i]) == formPipe.diameter.ToString())
{
//this line never executes, even when there's seemingly a text match
myIndex = i;
}
}
cboDiameter.SelectedIndex = myIndex;
Это то, что я использую, чтобы назначить диаметра трубы, но это усекается. (например, когда текст комбинированного текста равен «1,0», диаметр трубы присваивается «1»
//assign the value of the dropdown to the object
double.TryParse(cboDiameter.GetItemText(cboDiameter.SelectedItem), out value);
formPipe.diameter = value;
Вы уверены, что 'formPipe .diameter.ToString() 'возвращает строку с' '' в ней? – Shyju
Вы сравниваете строки. Строки типа '1.0' и' 1' не идентичны. – wimh
вам нужно использовать функцию '.EndsWith' или' .Contains' и '.Split()' – MethodMan